【Springboot2.x】自动装配,配置的2种方式

一、背景

配置文档:
https://docs.spring.io/spring-boot/docs/2.3.12.RELEASE/reference/html/appendix-application-properties.html#common-application-properties-json

二、代码

2.1 第一种:@Component+@ConfigurationProperties(prefix = “myperson”)

bean文件

@Component
@ConfigurationProperties(prefix = "myperson")
@Data
@ToString
public class Person {
    private String name;
    private String age;
}

配置文件 application.properties


myperson.name="jim"
myperson.age=18

测试:

@Autowired
public Person person;
@Test
public void getPerson(){
System.out.println(“★★★★★★—》”+person.toString());
}
结果:
在这里插入图片描述

2.2 第二种:@Configuration+@EnableConfigurationProperties+@ConfigurationProperties(prefix = “myperson”)

bean,这种方式可应用与第三方的ben包,如果第三方的这个bean包只配置了@ConfigurationProperties(prefix = “myperson”) 而3没有配置 @Component的情况下试用

//@Component
@ConfigurationProperties(prefix = "myperson")
@Data
@ToString
public class Person {
    private String name;
    private String age;
}

配置类

// 配置类标识
@Configuration(proxyBeanMethods = false)
// 开启自动配置
@EnableConfigurationProperties(Person.class)
public class Animal{
}

三、2中方法可以引用这个bean

1)@Autowired 注解

    @Autowired
    public Person person;
    @Test
    public void getPerson(){
        System.out.println("★★★★★★---》"+person.toString());
    }

结果:
在这里插入图片描述

2)★通过有参构造器传参引入(如果只有一个有参构造器),有参构造器的参数默认是从容器中拿的。

在这里插入图片描述
测试:
在这里插入图片描述


版权声明:本文为fen_dou_shao_nian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。