专注和简单一直是我的秘诀之一。
简单可能比复杂更难做到:你必须努力理清思路,从而使其变得简单。
但最终这是值得的,因为一旦你做到了,便可以创造奇迹。
——乔布斯
题记
前两天有点忙,没有连续更新,今天接着聊。金句里老乔的话说得多好,但能真正做到的人又有多少?至少就我个人而言,我还远远没有做到这样,只是一个在朝着这个方向努力的人,力求简明易懂,用大白话让人快速的明白理解,简单的例子上手,让使用的人更多的去实战使用扩展,折腾记即是对自己学习使用很好的一次总结,对看的人也是一个参考的方法,希望大家能够找到对自己有用的思路或方法。今天主要说的是,继续上一章的配置,我们自己如何自定义类型安全的配置,并使用一个常用的工具fastjson集成来切入,虽然有自定义的jackson和gson,折腾记就是要折腾一下嘛,不然怎么能打开新思路。
类型安全的配置
在上一篇文章中,我们有使用过直接在application.properties中设置变量,这种方式是Spring中常用的方式,但对Spring Boot来说,既不是安全的,也会因为频繁使用@Value来注入配置而过于繁琐,项目中使用起来尤其麻烦,真实项目中的变量就不像我演示的Demo里的只有一两行了,很多时候都会是几十行上百行,所以,Spring Boot中提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联,从而实现类型安全的配置。
实战1:自定义的配置通过类似Service的方式注入是使用
项目使用:boot_properties
1、创建Bean。
// TestInfoSettings.class
@Component
@ConfigurationProperties( //1
prefix = "usetest",
locations = "classpath:config/app.properties"
)
public class TestInfoSettings {
private String name;
private String age;
//省略get、set
}
说明:
1:@ConfigurationProperties加载properties文件内的配置,prefix属性指定配置的前缀,例如:usetest.*=string 。locations可以指定自定义的文件位置,不指定默认使用application.properties。
2、在src/main/resources下新增config/app.properties。
usetest.name=mickjoust
usetest.age=18
3、在Controller里添加一个接口调用.
//TestController.class
...原有省略
@RequestMapping("/showSetting")
public Object showSetting(){
StringBuffer sb = new StringBuffer();
sb.append("setting name is : ").append(testInfoSettings.getName());
sb.append("setting age is : ").append(testInfoSettings.getAge());
sb.append("all is : ").append(testInfoSettings);