springboot采纳了创建生产就绪Spring应用程序的观点。 Spring Boot优先于配置的惯例,旨在让您尽快启动和运行。在通常状况下,咱们不须要作太多的配置就可以让spring boot正常运行。在一些特殊的状况下,咱们须要作修改一些配置,或者须要有本身的配置属性。java
当咱们建立了SpringBoot-maven 项目后,自动生成 src/main/resources/application.properties(application.yml) 配置文件进行spring的配置
配置自定义属性 :spring
配置服务启动的端口号 : server.port=8000 (application.properties) server : (application.yml) port : 8000
读取配置文件的属性springboot
定义普通的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注解。app
@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)dom
- 新建配置文件(${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 下配置的