spring boot配置文件
来源:互联网 发布:访问虚拟机nginx失败 编辑:程序博客网 时间:2024/06/05 09:37
spring boot采纳了建立生产就绪Spring应用程序的观点。spring boot自动配置自带了很多配置类。默认会启动自带的配置,即使你没有在配置文件中配置任何属性也会正常运行。但是通常,默认的配置无法满足我们自己的需求,这时候我们就需要在配置文件中微调我们的配置属性。在这里我们举一个简单的例子,spring boot 在启动的时候会有一副“画”,如果你想要禁用这个Banner,就可以在配置文件中将spring.main.show-banner设置为false。当然还有其他的方法,比如在运行程序的命令行参数里指定:$ java -jar {$jarName}-0.0.1-SNAPSHOT.jar --spring.main.show-banner=false另外可以在application.propertie或者application.yml文件中设置例如在application.yml中配置:
spring: main: show-banner: false
另外也可以改变环境变量,当然就作者而言就喜欢用的就是在配置文件中指定了,方便嘛!
实际上,Spring boot应用程序有多种设置途径。包括如下几处:1.命令行参数2.java:comp/env里的JNDI属性3.JVM系统参数4.操作系统环境变量5.随机生成的带random.*前缀的属性(在设置其他属性时,可以引用它们,比如${random.long})6.应用程序以外的application.properties或者application.yml文件7.打包在应用程序内的application.properties或者application.yml文件8.通过@PropertySource标注的属性源9.默认属性
同样,这个列表也是有优先级的,优先级自上而下,高优先级会覆盖低优先级。
application.properties和application.yml文件能放在一下四个位置:
(1)外置,在相对于应用程序运行目录的/config子目录。
(2)外置,在应用程序运行的目录里。
(3)内置,在config包内。
(4)内置,在Classpath根目录。
此外,config目录优先级高于Classpath根目录优先级,同一目录下yml配置文件中的属性优先级高于properties
这里讲一下如何替换Sprint boot启动时候的动画,只需要在resources目录下创建一个Banner.txt文件,那么程序启动时候会读取Banner.txt的内容,同样在txt文件中加上${AnsiColor.BLUE}则可以将图画颜色变为蓝色。可以看AnsiColor.java源码,在其中挑选自己想要的颜色。这里博主用了
....∵ ∴★ ∴∵∴ ╭ ╯╭ ╯╭ ╯╭ ╯╭ ╯∴∵∴∵∴
.☆.∵∴∵.∴∵∴▍▍ ▍▍ ▍▍ ▍▍ ▍▍☆ ★∵∴
▍.∴∵∴∵.∴▅█████████████████████☆ ★∵
◥█▅▅▅▅███████▅█▅█▅█▅█▅█▅██████████◤
. ◥█████████████████████████████◤
....◥████████████████████████■◤
寓意驶往大海, 向往自由
接下来讲解一下如何在代码中获取配置文件中的属性,以yml配置文件举例:
1.简单的获取配置文件单值
只需要一个@Value(“user.address”)即可在属性上注入配置文件中的值
@Value("${user.address}")private String address;
2.应用程序的bean外置
首先创建一个ExampleProperties.java类,在这个类中只要一个address地址属性(简单点来嘛)
@Component@ConfigurationProperties(prefix = "user")public class ExampleProperties { private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
在这个类上需要加上@Component注解进行注入,接下来最重要的还是@ConfigurationProperties(prefix = “user”)注解,注意:改address的值实际是由setter方法注入的哟,prefix很好理解,就是配置文件中的属性前缀,在配置文件中的格式则为:
user: address: 杭州
/**还有一点要注意的地方就是从技术上来说,@ConfigurationProperties注解默认是不会生效的,除非先向spring配置类添加@EnableConfiguationProperties注解。但通常无需这么做,因为Spring Boot 自动配置后面的全部配置类都已经加上了@EnableConfiguationProperties,除非你不使用自动配置,否则就需要显式添加@EnableConfiguationProperties注解。**/
我们只需要交由spring注入即可使用
@Autowired private ExampleProperties exampleProperties; //
3.自定义配置文件
当我们属性的配置单独写在另一个配置文件当中时:如写了一个User.yml文件内容与上面相同,这时候,我们就需要通过
@Configuration@PropertySource("classpath:user.properties")@ConfigurationProperties(prefix = "user")
来指定我们想要获取的配置文件,注意上面我用了.properties的配置文件,博主刚开始的时候也是给自己挖了个坑,用yml的文件怎么都获取不到值,搞了好久,后来google了才发现@PropertySource这个注解只能获取properties配置文件,这个是属于spring的注解。如果想要使用yml的配置文件,就需要实现PropertySourceFactory类,代码如下:
public class YamlPropertySourceFactory implements PropertySourceFactory { @Override public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException { return name != null ? new PropertySourcesLoader().load(resource.getResource(), name, null) : new PropertySourcesLoader().load( resource.getResource(), getNameForResource(resource.getResource()), null); } private static String getNameForResource(Resource resource) { String name = resource.getDescription(); if (!StringUtils.hasText(name)) { name = resource.getClass().getSimpleName() + "@" + System.identityHashCode(resource); } return name; }}
之后在bean上加上
@PropertySource(value = "classpath:user.yml",factory=YamlPropertySourceFactory.class)//指定factory
指定文件路径与加载类,即可读取到yml配置文件啦!
- spring-boot配置文件
- Spring Boot 配置文件模板
- Spring Boot属性配置文件
- spring boot 工程配置文件
- Spring boot 配置文件
- Spring boot读取配置文件
- spring boot配置文件
- spring boot (二) 配置文件
- spring-boot 配置文件
- spring Boot 配置文件详解
- Spring Boot之配置文件
- spring-boot 配置文件读取
- Spring Boot 配置文件介绍
- Spring boot 配置文件读取
- spring boot配置文件
- spring boot 读取配置文件
- spring boot 配置文件详解
- Spring Boot配置文件详解
- centos7安装指定版本的docker
- 开放源始码和安全性有什么关系?
- mao20170924
- 正则表达式
- JS window
- spring boot配置文件
- demo_2. Python集合之间的关系运算
- c++随笔
- 一些去重离散化操作
- Jmeter:负载功能测试和性能测试
- ViewPager+Fragment+ListView重新加载后数据源重复问题的解决方法
- Android studio 使用中的小技巧
- linux下常用的命令大汇总
- 小工具-博客园 首页 公告 自定义 时钟 HOME HOME CLOCK,homeclock