Spring boot application.properties和 application.yml 初学者的学习
Posted 两袖清风怎敢误佳人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring boot application.properties和 application.yml 初学者的学习相关的知识,希望对你有一定的参考价值。
来自于java尚硅谷教程
简单的说这两个配置文件更改配置都可以更改默认设置的值比如服务器端口号之类的,只需再文件中设置即可, properties可能是出现的比较早了,如果你不调你的默认编码,中文可能乱码,yml则不会,至于在两个文件中写不同配置最终执行那个?我没试不得而知!总之都很好用!
说白了为了提高代码复用性是这样吧意思这个就是为了方便从配置文件中读值
例如你建立了一个bean类 别指望运行
Person.java
package com.automavn.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; /* * 把配置文件映射到组件中 * prefix对配置文件哪一个属性下的文件进行映射@Component必须要加 * */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String name; private int age; private List<Object> list; private Map<Object,Object> map; @Override public String toString() { return "Person{" + "name=\'" + name + \'\\\'\' + ", age=" + age + ", list=" + list + ", map=" + map + \'}\'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public List<Object> getList() { return list; } public void setList(List<Object> list) { this.list = list; } public Map<Object, Object> getMap() { return map; } public void setMap(Map<Object, Object> map) { this.map = map; } }
@Component @ConfigurationProperties(prefix = "person")这两个配置是要加的同时要在maven配置(pom.xml)你的yml将会提示你拥有的类的信息
<!-- 有了这个bean 下yml的配置将会提示 而且dependency 在dependencies标签下--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
application.properties的值的大致写法
# 要设置你的编码否则这个会乱码 设置为UTF-8 在设置里面设置 person.age=20 person.name=爸爸 #list用逗号隔开 person.list=a,b,c,d person.map.key=第一个key值 person.map.key1=第二个key值
application.yml的值的大致写法你写的对不对点击文字底部状态栏会有提示的(IDEA)
person: name: 爸爸 age: 18 list: - 第一个list - 第二个list map: {k1: v1 , k2: v2 }
@Component @ConfigurationProperties(prefix = "person") @Validated 可以添加对格式的判断例如@Email 但是@Value不行 --------------------------------------------------- @Value("${person.name}") 利用@Value获取特定的值 以前没学过Spring建议....语法不大懂走一步说一步吧
----------------------------------------------------------------------------------------------------------第二天------------------------------------------------------
@PropertySource(value={classpath:resources下的自定义的properties文件})有了这个文件就可以读你自定义的配置了,原来是全局的
SpringBoot推荐使用给容器添加组件方式为 @Bean给容器添加组件
例如:
@Configuration public class MyConfig { @Bean//组件ID默认为方法名称 public HelloService hello() { } }
以上是关于Spring boot application.properties和 application.yml 初学者的学习的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot REST 应用程序中重用类?
为啥 Spring Boot 应用程序 pom 同时需要 spring-boot-starter-parent 和 spring-boot-starter-web?