博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot2.0系列(二):配置属性
阅读量:6304 次
发布时间:2019-06-22

本文共 1667 字,大约阅读时间需要 5 分钟。

  hot3.png

前言

Spring Boot中核心思想:约定优于配置。那到底什么是约定优于配置?

约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

比如,我们想改tomcat的默认8080端口,我们可以在application.properties配置文件中添加 server.port=8081,即我们只需要修改没有按照约定的配置即可。

正文

Spring Boot中几乎所有的配置都在 application.properties 中修改,如果你想看全部的配置,可以查看下面官网链接: 只需要选择需要修改的属性配置。

自定义属性

在application.properties 添加自定义属性

com.chenglt.name:城里头com.chenglt.sex:男

然后在使用的地方通过@Value(value=”${config.name}”)即可获取配置属性

@Value("${com.chenglt.name}")    private  String name;    @Value("${com.chenglt.sex}")    private  String sex;    @Test    public void getName() {        System.out.println(name+sex);    }

如果字段太多,可以自定义类来保存,比如,我们新建ChengConfig类,顶部需要使用注解@ConfigurationProperties(prefix = “com.chenglt”)来指明使用前缀。

@ConfigurationProperties(prefix = "com.chenglt")public class ChengConfig {    private String name;    private String sex; 
}

然后我们在入口类前加上@EnableConfigurationProperties({ChengConfig.class}) 指明加载那个类。

@SpringBootApplication@EnableConfigurationProperties({ChengConfig.class})public class DemoApplication {	public static void main(String[] args) {		SpringApplication.run(DemoApplication.class, args);	}}

最后再使用的地方注入该对象即可。

@Autowired    ChengConfig configBean;    @Test    public void getName() {        System.out.println(configBean.getName());    }

自定义配置文件

有时我们我们希望把自定义的属性单独建个文件,比如现在新建myconfig.properties,放在src/main/resource下并添加上文中的两个属性:

然后新建类MyConfig,@PropertySource注解指定配置文件。

@Configuration@ConfigurationProperties(prefix = "com.chenglt")@PropertySource("classpath:myconfig.properties")public class MyConfig {    private String name;    private String sex; 
}

最后再通过该bean对象获取到属性值。


参考链接

转载于:https://my.oschina.net/kbdxe/blog/2051792

你可能感兴趣的文章
有赞透明多级缓存解决方案(TMC)设计思路
查看>>
如何设计高扩展的在线网页制作平台
查看>>
Git 2.5增加了工作树、改进了三角工作流、性能等诸多方面
查看>>
Swift 5将强制执行内存独占访问
查看>>
中台之上(二):为什么业务架构存在20多年,技术人员还觉得它有点虚?
查看>>
深度揭秘腾讯云低功耗广域物联网LPWAN 技术及应用
查看>>
与Jeff Sutherland谈敏捷领导力
查看>>
More than React(四)HTML也可以静态编译?
查看>>
React Native最佳学习模版- F8 App开源了
查看>>
云服务正在吞噬世界!
查看>>
阅读Android源码的一些姿势
查看>>
Web语义化标准解读
查看>>
一份代码构建移动、桌面、Web全平台应用
查看>>
高性能 Lua 技巧(译)
查看>>
区分指针、变量名、指针所指向的内存
查看>>
异步编程的世界
查看>>
最近话题火爆的四件事你知道不?
查看>>
SpringBoot整合MyBatis
查看>>
云计算产业如何率先推行信用管理?
查看>>
Android 类库书签更新(一)
查看>>