SpringBoot学习三:常用注解(配置相关)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/choath/article/details/100170498

SpringBoot常用注解(配置相关)

1.yml语法

★注意空格

yml中的写法

properties中的写法

2.@Value获取值和@ConfigurationProperties获取值比较

备注:

松散绑定:就是不区分配置文件中的大小写等等,都能获取到值

SpEL:配置文件中的计算获取的值

JSR303数据校验:例如在字段前面加@Emial注解,校验该字段是否为emial格式,如果不是,会报错!

复杂类型封装:例如map类型封装的数据

@Value获取值的代码

@RestController
public class HelloController {

    @Value("${person.lastName}")
    private String name;

    @RequestMapping("/sayHello")
    public String sayHello(){
        return "Hello," + name;
    }
}

@ConfigurationProperties获取值的代码(默认从全局配置文件中获取)

@PropertySource获取值的代码(从指定的配置文件目录获取

/**

* 将配置文件中配置的每一个属性的值,映射到这个组件中

* @ConfigurationProperties: 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定

*      perfix = "person": 配置文件中哪个下面的所有属性进行一一映射

* @PropertySource:从指定的配置文件目录获取     

*只有这个组件是容器中的组件,才能提供@ConfigurationProperties功能,所有要加@Component注解

* */

@Component

@ConfigurationProperties(prefix = "person")     //默认从全局配置文件中获取

@PropertySource(value={"classpath:person.yml"}) //从指定的配置文件目录获取

@Data

public class Person1 {

    @Email //数据校验,是否为email

    private String lastName;

    private String age;

    private Boolean boss;

    private Date birth;

    private Map<String,Object> maps;

    private Dog dog;

}

应用场景:

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;

如果说,我们专门写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

另外如果需要从指定配置文件目录获取的时候,用@PropertySource;

3.@Configuration和@Bean

/**
*  @Configuration:指明当前类是一个配置类,就是来代替之前的Spring配置文件
*
*  相当于在配置文件中<bean><bean/>标签添加注解
*/
@Configuration
public class HelloConfig {
    @Bean //此注解就是将方法的返回值添加到容器中,容器中这个组件的默认ID就是方法名
    public HelloService helloService(){
        return new HelloService();
    }
}

3.配置文件占位符

例如:(yml)

person:
  lastName: xiwen${random.uuid}
  age: 18
  boss: true
  birth: 2018/07/07
  maps: {k1: v1,k2: v2}
  lists:
    - lisi
    - zhaowu
  dog:
    name: 小狗
    age: 2

4.激活指定profiles

5.配置文件加载位置

6.外部配置加载顺序(所有加载配置来源)

命令行参数:java -jar game-0.0.1-SNAPSHOT.jar --server.port=8080  --server.context-path=/abc

多个配置用空格分开;--配置项=值

7.自动配置的原理

备注:在yml中添加配置即可

#开启Spring Boot的debug,可以打印出自动配置报告

debug: true

猜你喜欢

转载自blog.csdn.net/choath/article/details/100170498
今日推荐