1. 新建源码包sources,在它下面新建application.properties文件
① 热部署:
在pom.xml添加依赖:
<!--支持热部署的插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
在application.properties文件中添加:spring.devtools.restart.enabled:true
总结:
不管你是修改java代码,还是修改application.properties文件,它都会重新部署。如果想修改java代码之后,重新部署,修改application.properties文件,不部署。需要添加配置: spring.devtools.restart.exclude:application.properties
② 配置端口:
server.port=9999
③ 使用自定义参数,在application.properties添加:
person.name=tom
person.age=13
要想在java代码中使用这两个配置,使用@Value注解:
@Value("${person.name}")
private String name;
@Value("${person.age}")
private int age;
④ 参数引用,在配置文件中又添加参数people.name,它的值想要和person.name的值一样:
people.name=${person.name}
⑤ 配置随机数
tom.age=${random.int(10)} 10以内的
tom.salary=${random.int[1000,2000]} 1000~2000
因此我们还可以配置随机端口,这样在测试的时候就不会出现都快冲突的现象
server.port=${random.int[8000,9000]}
⑥ 命令行参数,将SpringBoot打成jar包之后,直接使用java -jar xxx.jar来启动项目
使用java -jar xxx.jar --server.port=9999直接以命令行的方式来设置server.port属性, java -jar xxx.jar --server.port=9999 等价与在application.properties中添加属性server.port=9999,这样可以避免在同一台服务器部署多个相同项目而出现的端口冲突。
⑦ 多环境配置,通常一个应用程序可能被部署到多个环境中,开发,测试和生产。每个环境的配置信息不同,如数据库连接,端口等,这样在部署的时候,修改配置文件是件相当麻烦的事情。
多环境的配置文件要满足这样的格式:application-xxx.properties,比如:
开发环境:application-dev.properties
测试环境:application-test.properties
具体要加载哪一个配置文件,只需在application.properties文件中添加配置:spring.profiles.active=dev,这样项目启动的时候就会适应开发环境配置文件的信息,也可以通过目录行来指定:java -jar xxx.jar --spring.profiles.active=dev
⑧ 使用自定义配置文件
@PropertySource加载指定 的配置文件
在resource下新建一个person.properties文件,里面有个name=tom的属性,现在我们要想使用它,加个注解@PropertySource(value={"classpath:person.properties"})
@RestController
@RequestMapping("/test")
@PropertySource(value={"classpath:person.properties"})
public class TestController {
@Autowired
IHelloService helloService;
@Value("${name}")
private String name;
@RequestMapping("/hello")
public String hello() {
helloService.hello();
return "hello world " + name;
}
}
⑨ 使用xml文件
导入Spring的配置文件,使其生效
如果SpringBoot项目要想使用xml文件,使用@ImportResource注解,标注在一个配置类上
@ImportResource(locations={"classpath:beans.xml"})