包含标签 springboot 的文章

SpringBoot 应用使用 ThinLayout 打包的一些注意事项

参考 本文主要参考: 廖雪峰-瘦身Spring Boot应用 Spring Boot Thin Launcher GitHub 官方站点 改进打包配置 针对原文 瘦身Spring Boot应用 中已不适用新版 1.0.31的内容进行调整。 首先需要在打包插件中添加repackage的execution,其目的是将spring-boot-thin-layou……

阅读全文

Mac下使用GraalVM和SpringBoot3.1构建本地应用

准备工作 安装GraalVM工具 使用 sdkman 下载并安装 GraalVM的jdk sdk install java 22.3.1.r17-grl安装好后,将该sdk设置为默认 sdk default java 22.3.1.r17-grl检查版本 java -version openjdk version "17.0.6" 2023-01-17 OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13) OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing)检查gu工具版本: gu --version GraalVM Updater 22.3.1安……

阅读全文

使用picocli开发基于springboot的命令行工具

添加 maven 依赖 当你已经创建好 springboot 应用后,将 picocli 的依赖加入到 pom.xml 中 <dependency> <groupId>info.picocli</groupId> <artifactId>picocli-spring-boot-starter</artifactId> <version>4.6.3</version> </dependency>修改 springboot 主程序 将你的 springboot 主程序修改为实现了ApplicationRunner接口,并将主程序命令定义为helper package top.yjp.testing; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import picocli.CommandLine; import top.yjp.testing.helper.cmd.DemoCommand; import javax.annotation.Resource; @SpringBootApplication(proxyBeanMethods = false) @Slf4j @CommandLine.Command( name = "helper", description = "自动……

阅读全文

SpringBoot配置JSON格式的日志输出

前言 当应用被拆分为N多个微服务时,当系统遇到问题,能够准确的查看日志就成了一个非常现实的问题。 原因是以容器方式运行的服务可能分布在不同的服务器上,至少十几个的微服务,甚至更多。同时由于也不太可能给到研发人员所有的相关服务器权限, 因此,需要一个集中的日志查看分析的系统,这个系统就是……

阅读全文

使用 Node 运行 ES6 模块

使用 Node 运行 ES6 模块 由于 Node 的模块组织方式和 ES6 的模块组织方式不同,因此 ES6 的模块导入和导出语法在 Node 命令行程序执行下会报错 另外,某些 ES6 关键字的用法亦不兼容,因此需要使用 Babel 进行转换后执行 比如: 有个 ES6 写的 logger.js 直接上代码: const Level = { DEBUG: 1, INFO: 2, ERROR: 3, NONE: 4, }; class Logger { constructor(level) { this.level = level || Level.INFO; } } // 执行默认构造行数并打印 const……

阅读全文

非 WEB 环境下运行 SpringBootApplication

非 WEB 环境下运行 SpringBootApplication 前言 有时候一些项目并不需要提供 Web 服务,例如跑定时任务的项目等。因为启动一个 Tomcat 这样的 WEB 服务器容器也比较消耗资源,浪费内存及算力。 非 WEB 项目可以修改 maven 依赖为: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies>当然,不修改也是没有问题的,可以仍旧依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </d……

阅读全文

使用 mvn 进行 springboot 2.2.5+mybatis-plus 3.3 开发

使用 mvn 进行 springboot 2.2.5+mybatis-plus 3.3 开发 使用 https://start.spring.io 生成新项目框架 数据源配置 /resources/application.properties spring.datasource.username=root spring.datasource.password= spring.datasource.url = jdbc:mysql://127.0.0.1:3306/hotel spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver spring.datasource.type = com.zaxxer.hikari.HikariDataSource主启动文件 import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication @EnableTransactionManagement @EnableCaching @MapperScan("com.localhost.mapper") public class ApiApplication { public static void main(String[] args) { SpringApplication.run(ApiApplication.class, args); } }当启动时报错如下时 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)原因是标准的 mvn 项目不会将位于 src/main/java 下的……

阅读全文

整合 spring-boot 和 mybatis-plus 进行 Api 开发

整合 spring-boot 和 mybatis-plus 进行 Api 开发 使用 idea 社区版作为开发工具,gradle 作为构建工具 主要配置: 首先使用 SpringBoot 初始化项目进行项目模版配置,选择 web ,mysql,lombok 即可 build.gradle 配置 plugins { id 'org.springframework.boot' version '2.1.6.RELEASE' id 'java' id 'war' } apply plugin: 'io.spring.dependency-management' group = 'io.github.joy.fxz' version = '0.0.2' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // 无需添加mybatis的依赖,防止与mybatis-plus整合的版本不一致 implementation 'com.baomidou:mybatis-plus-boot-starter:3.1.2'……

阅读全文

使用 junit 对 springboot 应用进行单元测试

使用 junit 对 springboot 应用进行单元测试 使用 springboot 2.2.5 开发 web 应用的时候,需要进行单元测试。 普通的 java 的单元测试比较简单,对于采用 REST 方式开发的微服务,则需要使用 WEB 环境进行测试。 示例代码如下: package com.sample.api; import com.sample.api.controller.TestController; import com.sample.api.entity.User; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) public class TestControllerTest { @Resource private TestRestTemplate restTemplate; @Test public void test(){ User user = restTemplate.getForObject("/users/abc", User.class); System.out.println(user); Assert.assertNotNull(user); Assert.assertEquals("abc", user.getUsername()); } }需要注意的是对于 SpringBoot 里……

阅读全文