Spring Boot配置
配置文件的分类
SpringBoot是基于约定的,很多配置都有默认值,如果想使用自己的配置替换默认配置,就可以使用application.properties或者application.yaml(yml)进行配置
properties(以数据为中心):
server.port=8080
server.address=127.0.0.1
yml或yaml(大小写敏感、** 缩进必须使用空格**):
yml
server:
port: 8080/*空格提醒*/
address:127.0.0.1;
name:llfy
·对象(map):键值对的集合
person:
name:llfy
#行内写法
person: (name: llfy)
数组:一组按次序排列的值
address:
- changchun
- longnan
address:[changchun,longnan]
纯量:单个的、不可再分的值
mag1:'hello \n world' #单引忽略转义字符
mag1:“hello \n world” #双引不忽略转义字符
参数引用
name: llfy
person:
name: ${name} #引用上边定义的name值
对两者加注释都可以通过 ”contrl+/"的方式(实际都是#)
优先级:
properties>yml>yaml
读取配置内容
@value
@Value("${name}")
private String username;
@Value("${address[0]}")
private String address1;
@Value("${people.name}")
private String visitor;
@Value("${people.age}")
private String visitorAge;
@Value("${msg1}")
private String ms1;
@Value("${msg2}")
private String ms2;
@RequestMapping("/hello")
public String hello(){
System.out.println(username);
System.out.println(address1);
System.out.println(visitor);
System.out.println(visitorAge);
System.out.println(ms1);
System.out.println(ms2);
return "hello SpringBoot";
}
@Environment
IOC容器的注入
@Autowired
private Environment env;
System.out.println(env.getProperty("people.name"));//使用方法
@ConfigurationProperties
用于获取属性文件中的属性并绑定到JavaBean或者属性当中
@Component
@ConfigurationProperties
public class Person {
private String name;
private int age;
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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
controller类中的使用:
@Autowired
private Person person;
//hello方法中的应用
System.out.println(person);
IOC操作下的bean管理:(1)Spring创建对象(2)Spring属性注入
当我们在将一个类上标注**@Service或者@Controller或@Component或@Repository注解之后,spring的组件扫描就会自动发现它,并且会将其初始化为spring应用上下文中的bean。在使用这个Bean的时候,使用@Autowired**,这个Bean就会被创建,初始化是无参构造函数
@ConfigurationProperties:生成单独的类,自动绑定配置文件的属性值(属性名称一定要与配置中的一致,坑),供controller去调用
@Environment:使用Environment创建的evn去自动绑定值,属性注入,使用时从evn中去取
@Value:通过value(“${xx}”)去获得一个一个的属性值
小tips:
尚且不知道如何解决