本文阅读量 次
1. 6. ddd¶
1.1 7. 异步任务执行和调度¶
1.2 8. 测试(Testing)¶
几个核心概念
- @SpringBootTest
- @MockMvc
- @MockBean
1.3 9. 创建自己的自动配置(Auto-Configuration)¶
核心类或注解
-
@AutoConfiguration
-
@Conditional
- @ConditionalOnClass
-
@ConditionalOnMissingClass
-
@ConditionalOnBean
-
@ConditionalOnMissingBean
-
@ConditionalOnProperty
-
@ConditionalOnResource
-
@ConditionalOnWebApplicatio
- @ConditionalOnNotWebApplication
-
@ConditionalOnWarDeployment
-
@ConditionalOnExpression
-
@AutoConfigureBefore
- @AutoConfigureAfter
1.3.1 9.5 创建自己的 starter¶
1.3.1.1 命名规则¶
- 不要使用
spring-boot
作为开始 - 使用如下形式
acme-spring-boot-starter
1.4 10. Kotlin 的支持¶
1.5 8. Developing Tools¶
1.5.1 Restart vs Reload¶
1.5.2 远程调试¶
首先在远程 SpringBoot 应用中不能排除(需要包含) devtool
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
</plugins>
</build>
1.6 参数及配置文件优先级¶
传递参数的方式有多种:
- 配置文件
- Java 系统属性
- 命令行参数
- 环境变量
数值越高,优先级越大;高优先级的会覆盖低优先级的
方式 | 优先级 | 备注 |
---|---|---|
命令行参数 | 11 | |
Java 系统属性 | 6 | |
环境变量 | 5 | |
配置文件 | 3 |
示例
命令行参数
java -jar target/service-a-0.0.1-SNAPSHOT.jar --spring.cloud.nacos.config.server-addr=127.0.0.3:8848
Java 系统属性
java -Dspring.cloud.nacos.config.server-addr=127.0.0.2:8848 -jar target/service-a-0.0.1-SNAPSHOT.jar
环境变量
export SPRING_CLOUD_NACOS_CONFIG_SERVERADDR=127.0.0.4:8848
java -jar target/service-a-0.0.1-SNAPSHOT.jar
配置文件
spring:
application:
name: service-a
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
discovery:
server-addr: 127.0.0.1:8848
参考:
- https://blog.csdn.net/hknaruto/article/details/111588498 ⧉
- https://blog.csdn.net/weixin_42585386/article/details/122594925 ⧉
java 命令行
-Dxxx=yyy
是 虚拟机参数-D
参数要在-jar
之前--xxx=yyy
是 命令行参数
使用原则
总的来说,-D用于设置JVM系统属性,而–用于应用程序级别的参数。在实际应用中,开发人员可以根据具体需求选择适当的选项。历史上,-D主要用于设置系统属性,而–主要用于应用程序参数,但这并非绝对规定,具体的使用方式可能取决于应用框架或库的设计。
1.7 HowTo¶
1.7.1 如何排除某项的自动配置¶
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}
1.8 参考¶
- 如何查询 Spring Boot 版本发布及支持计划 https://spring.io/projects/spring-boot#support ⧉
- 如何查看 Spring Boot 依赖各子组件的版本 https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html ⧉