zoukankan      html  css  js  c++  java
  • 7springboot外部配置文件及加载顺序问题和热加载

    springboot外部配置文件及加载顺序问题

    springboot默认访问项目是不需要项目名的,如果想添加项目进行访问,那可以在properties文件中通过server.servlet.context-path=/项目名 配置访问时添加项目路径。

    项目外部的配置文件

    springboot一般都是使用内部自带的properties文件,但是如果项目打包成了jar包,但是测试发现端口号不对,那我们需要重新修改项目的端口号,然后再打成jar包,是不是很麻烦,可以利用外部配置文件解决这个问题。

    • idea版:主运行类右键选择Edit xxxapplication -> program arguments -> 输入 --spring.config.location=外部配置文件路径

    • 命令行:cmd输入java -jar 项目名.jar --spring.config.location=外部配置文件路径

    外部配置文件虽然好,但是如果仅仅只要修改一个端口号,而用一个文件里面就一个参数,有点浪费,这种方法适用于修改大量配置时。

    所以下面介绍第二种方式,运行时带参数。

    运行时带参数

    运行时带参数,通常适用于配置改动不多时,比如修改端口号。

    命令行:java -jar 项目.jar --server.port=端口号

    补充:多个地方配置时,如果冲突,会根据优先级来处理。

    优先级加载顺序

    命令参数( 运行参数 > 调用外部的配置文件) > 内部文件

    热加载

    修改配置文件时,不会马上生效,需要重启tomcat,这样如果每次修改一次代码,要生效都要重启tomcat,太麻烦了,而且如果项目比较大,可能启动时间比较耗时,所以接下来使用热加载,修改配置文件后不需要重启tomcat也可以让代码生效。
    步骤如下:

    1. 在pom里面添加依赖:
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <optional>true</optional>  
    </dependency>
    
    1. 修改idea的配置,在setting里面的Compiler的Build project automatically勾上。

    image-20201001211554995

    1. 最后在主界面中,重新Bulid一下就行,第一个是把project都重新构建,第二个选项是只构建当前module。

    image-20201001211715522

    1. 测试热加载是否生效
    • 在yml文件中随便写入一些属性
    aliyun:
      xxxx: abc
    
    • 然后在controller层注入yml的属性
    @Value("${aliyun.xxxx}")
    private String aliyun;
    
    • 写一个测试的映射方法
    @ResponseBody  //该注解只返回数据,不返回视图
    @RequestMapping("/aliyun")
    public String aliyun(){
        return aliyun;
    }
    
    • 浏览器测试

    image-20201001215106258

    访问aliyun默认值是abc,接着修改yml的aliyun:xxxx的值,随便改一个,然后刷新上面的页面,如下图:

    image-20201001215305852

    到此,热加载配置成功,热加载不必每次改动代码都要重启tomcat,很方便,如果配置不了,把上面的第3步再执行一次。

  • 相关阅读:
    怪题
    reflow(回流)和repaint(重绘)
    typeof
    Apicloud——图片不适配屏幕解决方案
    (学习笔记二)Apicloud使用中的坑
    es6的10个新特性
    QQ刷屏脚本
    vue的组件绑定
    console控制台打印看板娘
    Canvas
  • 原文地址:https://www.cnblogs.com/unlasting/p/13570729.html
Copyright © 2011-2022 走看看