springBoot为了更好的快速的启动和运行,遵行优先于配置的原则,其中springBoot默认加载src/main/Java/resources目录下application.properties或者application.yml,二者等价。
一:@Value读取配置文件
在application.properties新增 :
#运用名称
spring.application.name=spring-boot-demo
#端口号
server.port=9090
#@Value测试
value-word=Greetings from Spring Boot!
新建ConfigConctroller.java:
@RestController
public class ConfigController {
//获取配置文件的value-word值,没有则默认test
@Value("${value-word:test}")
String words;
@GetMapping("")
public Object index() {
return words;
}
}
浏览器访问:http://localhost:9090
二:@ConfigurationProperties读取多前缀值
修改配置文件application.properties:
#运用名称
spring.application.name=spring-boot-demo
#服务器端口
server.port=9090
#@Value测试
value-word=Greetings from Spring Boot!
#ConfigurationProperties读取多前缀值
user.name=dy_bom
user.age=${random.int(30)}
user.uuid=${random.uuid}
hello.word=Hi,${user.name}!
新建ConfigController.java
@RestController
public class ConfigController {
@Autowired
UserBean userBean;
@Value("${value-word:test}")
String words;
@Value("${hello.word:test}")
String hello;
@GetMapping("")
public Object index() {
return words;
}
@GetMapping("user_info")
public Object getUserInfo(){
return hello+"your message:"+userBean.toString();
}
}
新建userBean:
@ConfigurationProperties(prefix = "user")
@Component
@Data
public class UserBean {
private String uuid;
private String name ;
private int age;
@Override
public String toString() {
return "UserBean{" +
"uuid=" + uuid +
", name='" + name + '\'' +
", age=" + age +
'}';
}
浏览器访问:http://localhost:9090/user_info
三:读取其他配置文件,如自定义等
我们在resources目录下新建目录config,然后新增配置文件user-test.properties,结构如图:
user-test.properties:
request.url=http://www.baidu.com
控制器代码如下:
@RestController
@PropertySource(value = "classpath:config/user-test.properties")
@ConfigurationProperties(prefix = "request")
@Data
public class ConfigController {
private String url;
@GetMapping("req_url")
public Object getUrl(){
return url;
}
}
浏览器访问:http://localhost:9090/req_url
四:利用application.properties多环境*切换
我们知道,springBoot默认加载配置文件,application.properties,我们可以根据我们的环境构建其他配置文件applilcation.-.properties如:application-dev.proerties等.
application-dev.properties我们把端口修改一下:
server.port=9091
spring boot设置多配置文件很简单,可以在启动的时候加上:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setAdditionalProfiles("dev");
app.run(args);
}
}
浏览器访问:http://localhost:9091/
可见,环境切换成功,
你也可以在通过命令行执行的时候指定配置文件,其他不变,命令如下:
java -jar XXX.jar --spring.profiles.active=dev