0    课程地址

https://coding.imooc.com/lesson/380.html#mid=28272

 

1    浓缩精华
1.1  3.1,3.2

 

2    个人关注
2.1  3.3

 

3    课程内容
3.1  同一目录下的application和bootstrap
  • bootstrap优先级高于application,优先被加载
  • bootstrap 用于应用程序上下文的引导阶段,由父ApplicationContext加载bootstrap是系统级别的配置(不变的参数),
  • application是应用级别的配置

 

3.2  不同位置的配置文件加载顺序(优先级)
  • sfile:/config/-优先级最高(项目根路径下的config)
  • file:./-优先级第二(项目根路径下)
  • classpath:/config/-优先级第三(项目resources/config下)
  • classpath/-优先级第四(项目resources目录下)高优先级覆盖低优先级相同配置多个配置文件互补

 

3.3  注意事项
  •  跟路径下的配置文件不会被打包
  • 不同位置的配置文件优先级顺序最好将 配置spring.profiles.active  排除在外

 

 

4    代码演练
4.1  配置application.xml demo
  • application.yml配置
spring:
  application:
    name: imooc_springboot_study

server:
#端口号
  port: 8081
  servlet:
  #前缀
    context-path: /imooc

 

 

  • 启动类
    package com.imooc.springboot.application;
    
    import org.springframework.boot.Banner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.WebApplicationType;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    
    /**
     * SpringBootApplication
     *
     * @author 魏豆豆
     * @date 2021/1/13
     */
    @SpringBootApplication
    public class SpringBootStudyApplication {
        public static void main(String [] args){
            //第一种方式启动
            SpringApplication.run(SpringBootStudyApplication.class,args);
    
            //第二种方式启动
            /*SpringApplication springApplication = new SpringApplication(SpringBootStudyApplication.class);
            //关掉打印logo相关日志
            springApplication.setBannerMode(Banner.Mode.OFF);
            //非wub启动,控制台启动后会关闭,不会一直保持开启状态
            springApplication.setWebApplicationType(WebApplicationType.NONE);
            springApplication.run(args);*/
    
            //第三种方式启动 链式调用
           /* new SpringApplicationBuilder(SpringBootStudyApplication.class)
                    //.bannerMode(Banner.Mode.OFF)
                    .web(WebApplicationType.NONE).run(args);*/
        }
    
    }

     

  • 打印日志:
    D:\java\jdk\jdk8\jdk\bin\java.exe "-javaagent:D:\java\devolopKit\idea\anZh\IntelliJ IDEA Community Edition 2018.1.4\lib\idea_rt.jar=47197:D:\java\devolopKit\idea\anZh\IntelliJ IDEA Community Edition 2018.1.4\bin" -Dfile.encoding=UTF-8 -classpath D:\java\jdk\jdk8\jdk\jre\lib\charsets.jar;D:\java\jdk\jdk8\jdk\jre\lib\deploy.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\access-bridge-64.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\cldrdata.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\dnsns.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\jaccess.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\jfxrt.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\localedata.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\nashorn.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\sunec.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\sunjce_provider.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\sunmscapi.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\sunpkcs11.jar;D:\java\jdk\jdk8\jdk\jre\lib\ext\zipfs.jar;D:\java\jdk\jdk8\jdk\jre\lib\javaws.jar;D:\java\jdk\jdk8\jdk\jre\lib\jce.jar;D:\java\jdk\jdk8\jdk\jre\lib\jfr.jar;D:\java\jdk\jdk8\jdk\jre\lib\jfxswt.jar;D:\java\jdk\jdk8\jdk\jre\lib\jsse.jar;D:\java\jdk\jdk8\jdk\jre\lib\management-agent.jar;D:\java\jdk\jdk8\jdk\jre\lib\plugin.jar;D:\java\jdk\jdk8\jdk\jre\lib\resources.jar;D:\java\jdk\jdk8\jdk\jre\lib\rt.jar;F:\kewai\SpringCloud\laoqin\chapter_3\imooc_springboot_study\target\classes;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.1.4.RELEASE\spring-boot-starter-web-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter\2.1.4.RELEASE\spring-boot-starter-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot\2.1.4.RELEASE\spring-boot-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.1.4.RELEASE\spring-boot-autoconfigure-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.1.4.RELEASE\spring-boot-starter-logging-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\weijingli\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\weijingli\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.11.2\log4j-to-slf4j-2.11.2.jar;C:\Users\weijingli\.m2\repository\org\apache\logging\log4j\log4j-api\2.11.2\log4j-api-2.11.2.jar;C:\Users\weijingli\.m2\repository\org\slf4j\jul-to-slf4j\1.7.26\jul-to-slf4j-1.7.26.jar;C:\Users\weijingli\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;C:\Users\weijingli\.m2\repository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.1.4.RELEASE\spring-boot-starter-json-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.8\jackson-databind-2.9.8.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.8\jackson-core-2.9.8.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.8\jackson-datatype-jdk8-2.9.8.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.8\jackson-datatype-jsr310-2.9.8.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.8\jackson-module-parameter-names-2.9.8.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.1.4.RELEASE\spring-boot-starter-tomcat-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.17\tomcat-embed-core-9.0.17.jar;C:\Users\weijingli\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.17\tomcat-embed-el-9.0.17.jar;C:\Users\weijingli\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.17\tomcat-embed-websocket-9.0.17.jar;C:\Users\weijingli\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.16.Final\hibernate-validator-6.0.16.Final.jar;C:\Users\weijingli\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\weijingli\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;C:\Users\weijingli\.m2\repository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-web\5.1.6.RELEASE\spring-web-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-beans\5.1.6.RELEASE\spring-beans-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-webmvc\5.1.6.RELEASE\spring-webmvc-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-aop\5.1.6.RELEASE\spring-aop-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-context\5.1.6.RELEASE\spring-context-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-expression\5.1.6.RELEASE\spring-expression-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\projectlombok\lombok\1.18.6\lombok-1.18.6.jar;C:\Users\weijingli\.m2\repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-core\5.1.6.RELEASE\spring-core-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\spring-jcl\5.1.6.RELEASE\spring-jcl-5.1.6.RELEASE.jar;C:\Users\weijingli\.m2\repository\com\alibaba\fastjson\1.2.31\fastjson-1.2.31.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-configuration-processor\2.1.4.RELEASE\spring-boot-configuration-processor-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-starter-actuator\2.1.4.RELEASE\spring-boot-starter-actuator-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.1.4.RELEASE\spring-boot-actuator-autoconfigure-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\org\springframework\boot\spring-boot-actuator\2.1.4.RELEASE\spring-boot-actuator-2.1.4.RELEASE.jar;C:\Users\weijingli\.m2\repository\io\micrometer\micrometer-core\1.1.4\micrometer-core-1.1.4.jar;C:\Users\weijingli\.m2\repository\org\hdrhistogram\HdrHistogram\2.1.9\HdrHistogram-2.1.9.jar;C:\Users\weijingli\.m2\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar com.imooc.springboot.application.SpringBootStudyApplication
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.4.RELEASE)
    
    2021-03-12 06:13:02.446  INFO 13696 --- [           main] c.i.s.a.SpringBootStudyApplication       : Starting SpringBootStudyApplication on DESKTOP-A08HONB with PID 13696 (F:\kewai\SpringCloud\laoqin\chapter_3\imooc_springboot_study\target\classes started by weijingli in F:\kewai\SpringCloud\laoqin\chapter_3\imooc_springboot_study)
    2021-03-12 06:13:02.446  INFO 13696 --- [           main] c.i.s.a.SpringBootStudyApplication       : No active profile set, falling back to default profiles: default
    2021-03-12 06:13:04.971 ERROR 13696 --- [           main] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
    2021-03-12 06:13:05.942 ERROR 13696 --- [           main] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
    2021-03-12 06:13:06.143  INFO 13696 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
    2021-03-12 06:13:06.158 ERROR 13696 --- [           main] o.a.catalina.core.AprLifecycleListener   : An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
    2021-03-12 06:13:06.174  INFO 13696 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2021-03-12 06:13:06.174  INFO 13696 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.17]
    2021-03-12 06:13:06.375  INFO 13696 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/imooc]  : Initializing Spring embedded WebApplicationContext
    2021-03-12 06:13:06.375  INFO 13696 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 3818 ms
    2021-03-12 06:13:07.311  INFO 13696 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
    2021-03-12 06:13:07.711  INFO 13696 --- [           main] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
    2021-03-12 06:13:07.859  INFO 13696 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path '/imooc'
    2021-03-12 06:13:07.859  INFO 13696 --- [           main] c.i.s.a.SpringBootStudyApplication       : Started SpringBootStudyApplication in 6.339 seconds (JVM running for 7.18)

     

 

4.2  多个配置文件选择
  • application.yml
    spring:
      profiles:
     #  active: prod 生效的配置文件
        active: dev
      application:
        name: imooc_springboot_study
    
    server:
    #端口号
    #  port: 8081
    #  servlet:
    #    context-path: /imooc

     

  • application-dev.yml
    server:
    #端口号
      port: 8082
      servlet:
        context-path: /imooc-dev

     

  • 启动类
    package com.imooc.springboot.application;
    
    import org.springframework.boot.Banner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.WebApplicationType;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    
    /**
     * SpringBootApplication
     *
     * @author 魏豆豆
     * @date 2021/1/13
     */
    @SpringBootApplication
    public class SpringBootStudyApplication {
        public static void main(String [] args){
            //第一种方式启动
            //SpringApplication.run(SpringBootStudyApplication.class,args);
    
            //第二种方式启动
            /*SpringApplication springApplication = new SpringApplication(SpringBootStudyApplication.class);
            //关掉打印logo相关日志
            springApplication.setBannerMode(Banner.Mode.OFF);
            //非wub启动,控制台启动后会关闭,不会一直保持开启状态
            springApplication.setWebApplicationType(WebApplicationType.NONE);
            springApplication.run(args);*/
    
            //第三种方式启动 链式调用
           new SpringApplicationBuilder(SpringBootStudyApplication.class)
                    //.bannerMode(Banner.Mode.OFF)
                   // .web(WebApplicationType.NONE)
                   .run(args);
        }
    
    }

     

  • 打印日志
    2021-03-12 06:54:25.000  INFO 15908 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8082 (http)
    2021-03-12 06:54:26.972  INFO 15908 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8082 (http) with context path '/imooc-dev'

     

 

4.3  不同路径下优先级顺序测试

 

  • 根路径 config文件夹下:application.xml
    server:
    #端口号
      port: 8085
    #  servlet:
    #    context-path: /imooc

     

  • 常规resource路径下:application.xml
    spring:
     # profiles:
     #  active: prod
     #注意:这里不能有profiles active: dev,否则 按application-dev配置文件的端口号
     #   active: dev
      application:
        name: imooc_springboot_study
    
    server:
    #端口号
    port: 8081
    #  servlet:
    #    context-path: /imooc

     

  • 启动类
    package com.imooc.springboot.application;
    
    import org.springframework.boot.Banner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.WebApplicationType;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    
    /**
     * SpringBootApplication
     *
     * @author 魏豆豆
     * @date 2021/1/13
     */
    @SpringBootApplication
    public class SpringBootStudyApplication {
        public static void main(String [] args){
            //第一种方式启动
            //SpringApplication.run(SpringBootStudyApplication.class,args);
    
            //第二种方式启动
            /*SpringApplication springApplication = new SpringApplication(SpringBootStudyApplication.class);
            //关掉打印logo相关日志
            springApplication.setBannerMode(Banner.Mode.OFF);
            //非wub启动,控制台启动后会关闭,不会一直保持开启状态
            springApplication.setWebApplicationType(WebApplicationType.NONE);
            springApplication.run(args);*/
    
            //第三种方式启动 链式调用
           new SpringApplicationBuilder(SpringBootStudyApplication.class)
                    //.bannerMode(Banner.Mode.OFF)
                   // .web(WebApplicationType.NONE)
                   .run(args);
        }
    
    }

     

  • 打印日志
    2021-03-12 07:17:05.080  INFO 3240 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8085 (http) with context path ''

     

 

posted on 2021-01-19 06:58  菜鸟乙  阅读(163)  评论(0编辑  收藏  举报