SpringBoot2.x基础篇:使用CommandLineRunner或ApplicationRunner
如果你想要使用SpringBoot
构建的项目在启动后运行一些特定的代码,那么CommandLineRunner
、ApplicationRunner
都是很好的选择。
如果你想要使用SpringBoot
构建的项目在启动后运行一些特定的代码,那么CommandLineRunner
、ApplicationRunner
都是很好的选择。
我们在编写前后分离项目时,前端的项目一般需要静态资源(Image
、CSS
、JavaScript
…)来进行渲染界面,而如果我们对外采用依赖的方式提供使用时,我们的静态资源文件也应该放入打包文件内,这样才能更便捷的提供我们的功能,在我的开源分布式日志框架 minbox-logging 内提供了管理界面的功能,就是采用的这种方式实现,将静态资源以及编译后的HTML
页面存放到minbox-logging-admin-ui
依赖内,下面我们来看下具体的实现方式。
SpringBoot
在不断地版本迭代中陆续提供了不同的配置参数绑定的方式,我们可以单独获取一个配置参数
也可以将一系列的配置
映射绑定到JavaBean
的属性字段,下面我们来看看这几种方式的配置绑定哪一种是你最常用到的。
YAML
是一种用于指定层次结构配置数据的便捷格式,SpringBoot
内部通过集成SnakeYAML来支持解析,那我们如果来使用YAML
格式来代替Properties
,我们需要了解每一种Properties
对应YAML
的配置代替方式。
SpringBoot
约定了配置文件,默认为application.properties
,通过该文件可以修改很多默认的配置,当然我们还可以在该配置文件内添加自定义的配置,该文件通过key=value
的形式进行配置。
随机数的使用你是不是经常用到?我们在进行运行SpringBoot
单元测试时一般不会指定应用程序启动时的端口号
,可以在application.properties
文件内配置server.port
的值为${random.int(10000)}
,代表了随机使用0~10000
的端口号。
既然这种方式使用这么方便,那你知道${random.int}
是通过什么方式实现的吗?
SpringBoot
提供了内部配置application.yml
文件的方式来进行全局配置,还支持使用profiles
来激活不同环境下使用不同的配置文件,而这种方式毕竟是已经打包完成了,因此存在一定的局限性,像数据库特殊敏感配置也可能存在泄露的风险,如何解决这种问题呢?我们来看看本章要讲到的外部配置的方式吧!!!