热部署和热加载
热部署在服务器运行时从新部署项目,一般在生产环境的使用。
热加载在运行时重新加载class ,在开发情况使用。
热部署
分为两种实现方式 spring loaded方式 spring-boot-devtools方式
注意:intelllij ide中要打开自动构建。 setting > Compiler , 勾选 Build project automatically 且更改代码后要 ctrl+f9 才能更新页面。
方式一
devtools方式:
pom文件中加入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
直接通过右键run启动即可 此种方式最为简单。
方式2
springloaded方式
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
再在开发工具的命令行中执行mvn sprint-boot:run即可,此法无法调试。
在eclipse中,也可以通过如下方式:在运行 vm配置参数中添加:
-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify
另外,有教学视频提出要在application.properties文件中配置。
spring.thymeleaf.cache=false#关闭缓存,即时刷新页面。
spring.devtools.restart.enabled=true#热部署生效
spring.devtools.restart.additional-paths=src/main/java#设置重启的目录
spring.devtools.restart.exclude=static/,public/#排除不需要restart的文件
spring.devtools.restart.exclude=WEB-INF/**
资源文件读取
pom中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
在resource文件夹下添加需要读取的配置文件如my.properties
内容类似
com.tsrain.name= NB
com.tsrain.url=www.666.com
Pojo映射文件中 添加如下类似注释
@Configuration
@ConfigurationProperties(prefix="com.tsrain")//配置文件中配置项前缀
@PropertySource(value="classpath:my.properties")//配置文件路径
public class Resource
{
private String name;
private String url;
public String getName(){
.......
}
在应用pojo时可直接@Autowired
public class HelloController{
@Autowired
private Resource rsource;
...
}