Springboot中的自动配置类从application.properties取配置及注入

application.properties 包含如下配置

test.config.host=127.0.0.1 test.config.port=7001 test.config.conI=AAAAAAAA 

有TestConfig类

public class TestConfig { private String host; private String port; private String conI; } 

为了达到在系统启动时能够在application.properties中将前缀设置成test.config配置项目

全部初始化为TestConfig@Bean、

而且可以注入其它@Component

创建SpringbootWeb项目

项目文件的结构

图片[1]-Springboot中的自动配置类从application.properties取配置及注入-【聚禄鼎】一站式企业服务平台

POM文件的内容如下

4.0.0 org.springframework.boot spring-boot-starter-parent 2.6.6 com.my.demo configTest 0.0.1-SNAPSHOT config-Test Demo project for Spring Boot 17 org.springframework.boot spring-boot-starter-web org.projectlombok lombok 1.18.22 org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-maven-plugin

主类文件是ConfigTestApplication,具体内容如下。

@ComponentScan(basePackages = { “com.my.demo.config” }) 这一项必须要有,

由于TestConfig类与主类没有位于一个数据包之下

package com.my.demo.configTest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.my.demo.config.TestConfig; public class ConfigTestApplication { private TestConfig testConfigBean; public String index() { return “执行:” + testConfigBean.getHost(); } public static void main(String[] args) { SpringApplication.run(ConfigTestApplication.class, args); } }

TestConfig的文档内容是这样的,在类中无需添加@Component的注释。

package com.my.demo.config; import org.springframework.boot.context.properties.ConfigurationProperties; import lombok.Data; (prefix = “test.config”) public class TestConfig { private String host; private String port; private String conI; private String name; }

TestConfigCreater 文件内容为,这里注意EnableConfigurationProperties

有些文章认为需含有该注解、配置才会自动有效、

个人尝试过,含与不含并无差异,也不知是Springboot版的缘故

package com.my.demo.config; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import lombok.extern.slf4j.Slf4j; @Slf4j @Configuration //@EnableConfigurationProperties(TestConfig.class) public class TestConfigCreater { @Bean public TestConfig testConfigBean() { log.info(“创建testConfig…”); return new TestConfig(); } }

application.properties 里添加站点地址

server.port=8060

开始试验

图片[2]-Springboot中的自动配置类从application.properties取配置及注入-【聚禄鼎】一站式企业服务平台

原文链接:http://www.sfdkj.com/12856.html

 

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片