SpringBoot自定义配置项
Posted itlaoqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot自定义配置项相关的知识,希望对你有一定的参考价值。
SpringBoot自定义配置项
Spring Boot内置的配置项远远不能支撑我们的程序运行,在项目设计的时候,往往因为扩展性的需要,项目需要预留很多自定义设置项,Spring Boot允许我们配置自定义选项。
学习视频: http://www.itlaoqi.com/chapter/1685.html
源码地址: QQ群 814077650 , 群共享中自助下载
老齐的官网: itlaoqi.com (更多干货就在其中)
在 Spring Boot中,有两种方式使用自定义选项
- @Value 单个属性注入
@ConfigurationProperties 类型安全加载
第一种: @Value 单个属性注入
创建配置config.properties
app.name=demoapp
app.version=1.0.0
app.description=demoapp description
app.page-size=20
app.show-advert=true
app.website=http://www.itlaoqi.com
启动时载入配置文件
@SpringBootApplication
//在入口类启动时加载config.properties
@PropertySource("classpath:config.properties")
public class MyspringbootApplication
public static void main(String[] args)
// SpringApplication.run(MyspringbootApplication.class, args);
SpringApplication app = new SpringApplication(MyspringbootApplication.class);
//关闭Banner
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
@Value动态注入
@Controller
public class MyController
@Value("$app.name")
private String name;
@Value("$app.page-size")
private Integer pageSize;
...
第二种: @ConfigurationProperties
@Component
//将所有app前缀的属性自动赋值给对应Bean 属性
@ConfigurationProperties(prefix="app")
public class AppConfig
private String name;
private String description;
private String version;
private Integer pageSize;
private Boolean showAdvert;
private String website;
public String getName()
return name;
public void setName(String name)
this.name = name;
...
使用时动态注入
@Controller
public class MyController
//动态注入IOC容器中匹配的Bean
@Resource //相同功能可使用@Autowire
private AppConfig appConfig;
...
以上是关于SpringBoot自定义配置项的主要内容,如果未能解决你的问题,请参考以下文章
助力SpringBoot自动配置的条件注解ConditionalOnXXX分析--SpringBoo
springboot2.x自定义拦截把static静态文件给拦截的坑