springboot采纳了建立生产就绪Spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。在一般情况下,我们不需要做太多的配置就能够让spring boot正常运行。在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性。
自定义属性
当我们创建了SpringBoot-maven 项目后,自动生成 src/main/resources/application.properties(application.yml) 配置文件进行spring的配置
配置自定义属性 :
配置服务启动的端口号 :
server.port=8000 (application.properties)
server : (application.yml)
port : 8000
读取配置文件的属性
定义普通的java对象
public class Student{
private String name;
private Integer age;
private String sex;
// 省略 getter setter 方法
}
@RestController
@RequestMapping("student")
public class StudentController {
@Value("${student.name}")
private String name;
@Value("${student.age}")
private Integer age;
@RequestMapping("index1")
public Student index1(){
Student student = new Student();
student.setAge(age);
student.setName(name);
return student;
}
}
访问 localhost:8000/student/index1 name以及age注入进来
读取配置文件注入到javaBean中,使用ConfigurationProperties(prefix="student") 不用再使用@Value("${name}") 设置值,并且得添加一个依赖.另外需要在应用类或者application类,加EnableConfigurationProperties注解。
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
private String name;
private Integer age;
private String sex;
// 省略 getter setter方法
}
@RestController
@RequestMapping("student")
@EnableConfigurationProperties({Student.class})
public class StudentController {
@Autowired
private Student student;
@RequestMapping("index2")
public Student index2(){
System.out.println("0000");
return student;
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
自定义配置文件(不适用默认的application.properties)
- 新建配置文件(${random.xxx} 获取随机数)
test.properties
users.name=name
users.age=${random.int}
users.max=${random.int(20)}
users.uuid=${random.uuid}
users.hi=hi
users.value=Hello,${users.name}
- 在需要注入的javaBean 上添加注解(@PropertiesSource(value="classpath:test.properties") @ConfigurationProperties(profix="users"))
@Component
@PropertySource("classpath:test.properties")
@ConfigurationProperties(prefix = "users")
public class Users {
private String name;
private Integer age;
private String uuid;
private String value;
private Integer max;
private String hi;
}
- **使用自定义的 test.yml 一直没有注入成功**
- 使用 在controller中添加 @EnableConfigurationProperties({Users.class})
@RestController
@RequestMapping("user")
@EnableConfigurationProperties({Users.class})
public class UserController {
@Autowired
private Users users;
@RequestMapping("index3")
public Users index3(){
return users;
}
}
- 多个环境配置文件
1. 在现实的开发环境中我们可能需要多个不同环境(开发,调试,生产)的配置文件可以使用 application-{profile}.properties进行配置如
application-dev.properties : 开发环境
application-test.properties : 测试环境
application-prod.properties : 生产环境
2. 使用 : 在application.properties中配置
spring.profiles.active=dev 表示启动 开发环境
3. 启动程序发现端口变成了 dev 下配置的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。