spring-boot(五)自定义属性配置

分类:spring-boot
阅读:633
作者:majingjing
发布:2016-12-24 22:00

前面我介绍了spring-boot的快速搭建过程,各位小伙伴们肯定也小有体会,使用起来是非常方便。 spring-boot兼顾了spring的强大的功能,使用各种配置非常简易。 在前面几章的介绍中不知道有没有这种感觉,没有了原来自己整合spring各种烦人配置了,只需在pom中引入插件即可完成。 其实是spring-boot的spring-boot-starter-*帮我们完成了各种整合的默认配置,使得我们在使用中只需关注自己的业务代码的配置即可。

在学习新东西的时候首先就是观看下官方的文档,看下大致有什么功能和特性。 官方给的文档大致描述如下 微信截图_20161224210920.png

下面就来介绍下,如何在spring-boot的基础上完成自定义的配置。案例代码在 “spring-boot(四) 日志框架集成” 的基础上改造

项目结构图 微信截图_20161224221139.png

1。在application.properties中增加自己的配置参数值 注意:这里介绍了参数命名和参数间的引用

name=张三丰
my.age=149
my-kongfu=太极拳
my.info=姓名:${name},年龄:${my.age},功夫=${my-kongfu}

2。 编写对于的config实体对象 hello/config/MyConfig.java 注意:这里介绍了注入实例参数和静态参数

package hello.config;

import java.io.Serializable;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

/**
 * @description
 * 
 * @author Administrator - JingjingMa
 * @Email <a href="majinding888@163.com">majinding888@163.com</a>
 * @date 2016-12-24 下午7:57:45
 * @version 6.0
 * @DevTool Created By Eclipse 4.3
 * 
 */
@Configuration
public class MyConfig implements Serializable {

	private static final long serialVersionUID = 1L;

	@Value("${name}")
	private String name;

	@Value("${my.age}")
	private Integer age;

	@Value("${my-kongfu}")
	private String kongfu;

	public static String info;

	public String getInfo() {
		return info;
	}

	@Value("${my.info}")
	public void setInfo(String info) {
		MyConfig.info = info;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String getKongfu() {
		return kongfu;
	}

	public void setKongfu(String kongfu) {
		this.kongfu = kongfu;
	}

	@Override
	public String toString() {
		return "MyConfig [name=" + name + ", age=" + age + ", kongfu=" + kongfu + "]";
	}

}

3。 编写测试的controller类

@Controller
public class ConfigController {
	private Logger log = LoggerFactory.getLogger(this.getClass());

	@Autowired
	MyConfig config;

	@RequestMapping("/myconfig")
	@ResponseBody
	public String info() {
		log.info("配置解析:{}", config);
		return MyConfig.info;
	}
}

到此自定义属性配置已经完成了, 启动主启动类, 浏览器访问 http://localhost:666/myconfig 微信截图_20161224221742.png

查看控制台输出

微信截图_20161224221900.png


好了以上就是简单的介绍下如何自定义属性的配置及使用,更多其他强大的属性配置(随机数,命令行设置,多环境配置等等)还需参考官方文档介绍自己挖掘。

源代码附件: my-springboot-5.tar.gz