前言:上一篇简单介绍了利用 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;
@RestController
public 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方法在此省略
}
@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;
@RestController
public class Test {
@Autowired
private User user;
@RequestMapping("/")
public String testapplication(){
return user.getName()+user.getSpeak();
}
}
com.anshu.name="暗鼠"
com.anshu.speak="欢迎您"
指定bean文件的引用如下:
@Configuration
@ConfigurationProperties(prefix="com.anshu")
@PropertySource("classpath:test.properties")
public class User {
测试类的注解配置不变
在配置文件中还可以进行配置随机值配置,或者是外部参数配置等,更多配置文件中内容参考spring boot官网: