SpringBoot—基础特性
与其明天开始,不如现在行动!
文章目录
基础特性
1 SpringApplication
1.1 自定义banner
-
在resources文件夹下创建
banner.txt
或设置spring.banner.location
就可以定制banner -
在百度搜索:Spring Boot banner 在线生成工具
spring: banner: location: classpath:banner.txt #自定义banner main: banner-mode: off #关闭banner
2.2自定义SpringApplication
-
官方写法
@SpringBootApplication // 主程序类 public class UsercentersApplication { public static void main(String[] args) { // SpringApplication:Boot应用的核心API入口 SpringApplication.run(UsercentersApplication.class, args); } }
-
自定义写法
@SpringBootApplication // 主程序类 public class UsercentersApplication { public static void main(String[] args) { // 1.自定义SpringApplication底层设置 SpringApplication springApplication = new SpringApplication(UsercentersApplication.class); // 自定义配置 springApplication.setBannerMode(Banner.Mode.CONSOLE); // 2.运行SpringApplication springApplication.run(args); } }
-
FlenBuilder API
@SpringBootApplication // 主程序类 public class UsercentersApplication { public static void main(String[] args) { // Builder方式构建SpringApplication:通过Flent API进行设置 new SpringApplicationBuilder() .sources(UsercentersApplication.class) .bannerMode(Banner.Mode.CONSOLE) .run(args); } }
2 Profile
环境隔离能力,快速切换开发、测试、生产环境
步骤:
- 标识环境:指定哪些组件、配置在哪个生效
- 切换环境:这个环境对应的所有组件和配置就应该生效
2.1 环境隔离
-
标识环境:指定哪些组件、配置在哪个生效
- dev(开发环境)、test(测试环境)、prod(生产环境)
- Spring Profiles提供了一种隔离配置的方式,使其尽在特定环境生效
- 容器中的组件都可以被
@Profile
标记:@Profile(“dev”)
-
切换环境:这个环境对应的所有组件和配置就应该生效
-
配置文件中激活指定环境
spring: profiles: active: dev
-
命令行激活
java -jar xxx.jar --spring.profiles.active=dev
-
还可以配置默认环境
- 不标注@Profile的组件,任意时刻都激活
- 默认环境叫default
- 可以在配置文件修改:
spring.profiles.default=dev
-
2.2 配置文件
- application.yaml:主配置文件,任何情况下都生效
- 其它环境命名规范:application-{profile标识}.yaml
- 开发环境:application-dev.yaml
- 生产环境:application-prod.yaml
- 激活指定环境即可
- 配置文件激活
- 命令行激活
- 效果
- 生效配置 = 激活环境的所有项 + 主配置文件和配置文件不冲突的所有项
- 如果发生了配置冲突,以激活的环境配置文件为准。
3 外部化配置
场景:线上应用如何快速修改配置,并应用最新配置?
- SpringBoot使用**
配置优先级 + 外部配置
**简化配置更新、简化运维- 只需要为jar应用所在的文件夹放一个
application.properties
最新配置文件,重启项目就能自动应用最新配置
3.1 配置优先级
SpringBoot允许将配置外部化,以便可以在不同的环境中使用相同的应用程序代码。
我们可以使用各种外部配置源,包括Java Properties文件
、YAML文件
、环境变量
、命令行参数
配置可以写到很多位置,常见的优先级顺序:命令行 > 配置文件 > springapplication
配置
3.2 外部配置
配置文件优先级如下:(后面覆盖前面)
- jar包内的application.properties/yml
- jar包内的application-{profile}.properties/yml
- jar包外的application.properties/yml
- jar包外的application-{profile}.properties/yml
**建议:用一种格式的配置文件。**如果.properties
和.yml
同时存在,则properties
优先
包外 > 包内,同级情况:profile配置 > application配置
3.3 最终效果
**最终效果:**优先级由高到低,前面覆盖后面
- 命令行 > 包外config直接子目录 > 包外config目录 > 包外根目录 > 包内目录
- 同级比较:
- profile配置 > 默认配置
- properties配置 > yaml配置
4 单元测试
4.1 整合
SpringBoot提供一系列测试工具集及注解方便我们进行测试
spring-boot-test
提供核心性能测试能力,spring-boot-test-autoconfigure
提供测试的一些自动配置
我们只需要导入spring-boot-starter-test
即可整合测试
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
spring-boot-starter-test
默认提供了以下库供我们测试使用
- JUnit5
- Spring Test
- AssertJ
- Hamcrest
- Mockito
- JSONassert
- JsonPath
4.2 组件测试
直接使用@Autowired容器中的组件进行测试
💎总结
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!