SpringBoot的配置类的实现

在开发过程中,我们时常需要在项目启动的时候就能获取到某一个类,这时我们只需要添加一个配置类即可,在这个配置类上面添加上@Configuration,加上这个注解后就可以将当前的这个类标注为一个配置类,那么在项目启动的时候就会直接去加载这个类。
并且我们还可以在配置类中直接去获取到yml配置文件中的数据,直接使用@Value("${xxxx.xxxx")即可。
直接上demo:
编写一个格式为yml的配置文件,内容如下:

server:
  port: 9001

创建一个是实体类:

public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

在启动类的同包下面创建名为BeanConfig的配置类,在这个配置类中来获取yml中的数据以及通过某一个方法来创建并返回我们需要的类:

@Configuration
public class BeanConfig {
    @Value("${server.port}")   //获取yml文件中配置的端口号
    private Integer port;

    @Bean     //此注解非常的关键,意为创建一个该返回类型的对象
    public User getInteger(){   //返回User对象
        User user = new User();
        user.setAge(port);
        user.setName("xh");
        return user;
    }
}

基本工作准备完毕,下面我们编写一个测试的Controller来测试一波,即看能不能将配置类中返回的对象直接注入到controller中,以及看能不能在配置类中获取到yml文件中的数据:

@RestController
public class BeanController {
    @Autowired
    private User user;
    @RequestMapping("getPort")
    public User getPort(){
        user.setName(user.getName()+"111111");
        return user;
    }
 }

因为我们在配置类中已经将获取的端口号port字段作为了user对象的age,然后设置了user对象的name字段值为“xh”,如果能在controller中注入user对象,我们就将注入进来的user对象的name字段的name值拼接“11111”,那么最终返回的值应为{“name”:“xh111111”,“age”:9001}
下面我们就来访问接口测试一波:
在这里插入图片描述
在这里插入图片描述
数据正确,说明上面的配置类的方式是正确的
在这里记录一下,以防后面忘记了可以方便查阅

发布了43 篇原创文章 · 获赞 3 · 访问量 8991
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章