Spring Boot配置类实例讲解

  • application.properties
yaml 复制代码
spring.application.name=demo
app.config.upload-addr=baidu.com
app.config.app-key=1234
  • AppConfigProperties
java 复制代码
import lombok.Data;

@Data
public class AppConfigProperties {
    private String uploadAddr;
    private String appKey;
}
  • UploadComponent
java 复制代码
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

@Data
@Slf4j
public class UploadComponent {
    private AppConfigProperties appConfigProperties;
    public void upload(){
        log.info("app.config:{}",appConfigProperties);
    }
}
  • AppConfiguration
java 复制代码
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class AppConfiguration {

    //使用 @Value 注解注入配置文件中的spring.application.name属性的值到appName字段
    @Value("${spring.application.name}")
    public String appName;

    //定义一个Bean,RestTemplate的实例将会被Spring管理,BeanID=restTemplate
    @Bean
    public RestTemplate restTemplate() {return new RestTemplate();}

    //定义一个Bean,AppConfigProperties的实例将会被Spring管理
    //使用@ConfigurationProperties注解,将配置文件中以"app.config"为前缀的配置项自动绑定到AppConfigProperties
    @Bean
    @ConfigurationProperties(prefix = "app.config")
    public AppConfigProperties appConfigProperties() {return new AppConfigProperties();}

    @Bean
    public AppConfigProperties appConfigPropertiesNon() {return new AppConfigProperties();}

    //定义一个Bean UploadComponent的实例会被Spring管理
    //通过@Qualifier注解指定注入的appConfigProperties Bean的名称
    //确保注入的是我们刚刚定义的appConfigProperties Bean
    //在UploadComponent实例被创建后
    //设置其AppConfigProperties属性为我们注入的AppConfigProperties实例
    @Bean
    public UploadComponent uploadComponent(@Qualifier("appConfigProperties") AppConfigProperties properties) {
        UploadComponent uploadComponent = new UploadComponent();
        uploadComponent.setAppConfigProperties(properties);
        return uploadComponent;
    }
}
  • UploadController
java 复制代码
import com.example.demo.config.UploadComponent;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

@RestController
public class UploadController {
    @Resource
    private RestTemplate restTemplate;
    @Resource
    private UploadComponent uploadComponent;

    @GetMapping("/uploader")
    public void upload() {uploadComponent.upload();}
}
相关推荐
代码小鑫8 分钟前
A031-基于SpringBoot的健身房管理系统设计与实现
java·开发语言·数据库·spring boot·后端
落落落sss41 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
我救我自己41 分钟前
UE5运行时创建slate窗口
java·服务器·ue5
2401_853275731 小时前
ArrayList 源码分析
java·开发语言
爪哇学长1 小时前
SQL 注入详解:原理、危害与防范措施
xml·java·数据库·sql·oracle
MoFe11 小时前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore
_江南一点雨1 小时前
SpringBoot 3.3.5 试用CRaC,启动速度提升3到10倍
java·spring boot·后端
转转技术团队2 小时前
空间换时间-将查询数据性能提升100倍的计数系统实践
java·后端·架构
深情废杨杨2 小时前
后端-实现excel的导出功能(超详细讲解)
java·spring boot·excel
r0ad2 小时前
SpringCloud2023实战之接口服务测试工具SpringBootTest
spring boot·后端·spring cloud