Spring boot(三) 配置文件

来源:互联网 发布:淘宝商城女装秋装睡衣 编辑:程序博客网 时间:2024/05/29 15:50

前言:上一篇简单介绍了利用 spring boot进行输出 hellow world,知道了Spring Boot使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。所以,我们要想把Spring Boot玩的溜,就要懂得如何开启各个功能模块的默认配置,这就需要了解Spring Boot的配置文件application.properties。

第一种,定义引用的属性特别少时,在属性字段上直接引用

实现方式:

Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。如果在创建maven项目时在resource文件夹下没有这个目录,这时就需要手动进行创建一个application.properties文件;并且application.properties配置文件支持自定义的一些属性,例如在配置文件中定义内容如下:

com.anshu.name="暗鼠"com.anshu.speak="欢迎大家"
引用自定义配置文件如下
package com.decolor.application;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class Test {//将自定义属性值赋值给指定属性@Value("${com.anshu.name}")private String name;@Value("${com.anshu.speak}")private String speak;@RequestMapping("/")public String testapplication(){return name+speak;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSpeak() {return speak;}public void setSpeak(String speak) {this.speak = speak;} }

然后根据测试类中指定的访问路径进行访问;

二,当一个类中属性字段特别多时,spring boot官方提供了一个绑定一个对象bean,这里创建了一个user bean,但是在bean的顶部需要使用注解@ConfigurationProperties(prefix = “com.anshu”)来指明使用哪个

package com.decolor.application;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix="com.anshu")public class User {private String name;private String Speck;//get set方法在此省略}
最后在启动类的顶部使用注解@EnableConfigurationProperties({User.class})来指明要加载那个类,如:
@SpringBootApplication@EnableConfigurationProperties({User.class})public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
测试类中使用如下:
package com.decolor.application;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class Test {@Autowiredprivate User user;@RequestMapping("/")public String testapplication(){return user.getName()+user.getSpeak();} }

三,使用自定义的配置文件
在src/main/resource文件夹下定义自定义的配置文件,如test.properties文件,配置文件内容如下:
com.anshu.name="暗鼠"com.anshu.speak="欢迎您"
指定bean文件的引用如下:
@Configuration@ConfigurationProperties(prefix="com.anshu")@PropertySource("classpath:test.properties")public class User {
测试类的注解配置不变

注意:不管是直接在属性上使用注解配置属性值,还是使用bean的方式进行绑定对象进行使用属性值,都要注意配置文件中的属性名称都要和属性或者bean中的属性值一致;
例;配置文件中的属性设置为:com.anshu.name="暗鼠",在bean中定义的属性也要为name,否则自定义属性值无法注入指定属性中

在配置文件中还可以进行配置随机值配置,或者是外部参数配置等,更多配置文件中内容参考spring boot官网:
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html