spring boot热部署和资源文件读取

2018-08-08  本文已影响0人  cccccttttyyy

热部署和热加载

热部署在服务器运行时从新部署项目,一般在生产环境的使用。
热加载在运行时重新加载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

image.png

另外,有教学视频提出要在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;
...
}
上一篇下一篇

猜你喜欢

热点阅读