springboot配置

2021-03-12 03:30

阅读:760

标签:nap   sel   bsp   color   加载   参数   文件夹   compiler   dep   

maven设置

profile>
  id>jdk-1.8id>
  activation>
    activeByDefault>trueactiveByDefault>
    jdk>1.8jdk>
  activation>
  properties>
    maven.compiler.source>1.8maven.compiler.source>
    maven.compiler.target>1.8maven.compiler.target>
    maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
  properties>
profile>

@SpringBootConfiguration:Spring Boot的配置类;

@Configuration:配置类上来标注这个注解;

@Component 组件类标;

@EnableAutoConfiguration:开启自动配置功能;

@AutoConfigurationPackage:自动配置包;

@Import(AutoConfigurationPackages.Registrar.class):给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class;将主配置类        (@SpringBootApplication  标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;

EnableAutoConfigurationImportSelector:导入组件的选择器;将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;

resources文件夹中目录结构:

  static:保存所有的静态资源; js css images;

  templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不支持JSP页面);可以使用模板引擎(freemarker、thymeleaf);               

  application.properties:Spring Boot应用的配置文件;可以修改一些默认设置;

SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.properties     application.yml

将配置文件中配置的每一个属性的值,映射到这个组件中

  @Component
  @ConfigurationProperties(prefix = "fileName")

  

     dependency>
            groupId>org.springframework.bootgroupId>
            artifactId>spring-boot-configuration-processorartifactId>
            optional>trueoptional>
        dependency>

@PropertySource&@ImportResource&@Bean

  @PropertySource:加载指定的配置文件;@PropertySource(value = {"classpath:person.properties"})

  @ImportResource:导入Spring的配置文件,让配置文件里面的内容生效;@ImportResource(locations = {"classpath:beans.xml"})

 

SpringBoot推荐给容器中添加组件的方式;推荐使用全注解的方式

1、配置类@Configuration------>Spring配置文件

2、使用@Bean给容器中添加组件

  

/**
 * @Configuration:指明当前类是一个配置类;就是来替代之前的Spring配置文件
 *
 * 在配置文件中用标签添加组件
 *
 */
@Configuration
public class MyAppConfig {

    //将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
    @Bean
    public HelloService helloService02(){
        System.out.println("配置类@Bean给容器中添加组件了...");
        return new HelloService();
    }
}

Profile  

  在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml  默认使用application.properties的配置;  

    yml支持多文档块方式

  

server:
  port: 8081
spring:
  profiles:
    active: prod

---
server:
  port: 8083
spring:
  profiles: dev


---

server:
  port: 8084
spring:
  profiles: prod  #指定属于哪个环境

  

激活指定profile

  1、在配置文件中指定 spring.profiles.active=dev

  2、命令行:

    java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev;

  可以直接在测试的时候,配置传入命令行参数

  3、虚拟机参数;-Dspring.profiles.active=dev

 

配置文件加载位置

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件

–file:./config/

–file:./

–classpath:/config/

–classpath:/

优先级由高到底,高优先级的配置会覆盖低优先级的配置;SpringBoot会从这四个位置全部加载主配置文件;互补配置

 

我们还可以通过spring.config.location来改变默认的配置文件位置.项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties

外部配置加载顺序

SpringBoot也可以从以下位置加载配置; 优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置

1.命令行参数

所有的配置都可以在命令行上进行指定   java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 --server.context-path=/abc

多个配置用空格分开; --配置项=值 

2.来自java:comp/env的JNDI属性

3.Java系统属性(System.getProperties())

4.操作系统环境变量

5.RandomValuePropertySource配置的random.*属性值

 由jar包外向jar包内进行寻找;

优先加载带profile

6.jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件

7.jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件

 再来加载不带profile

8.jar包外部的application.properties或application.yml(不带spring.profile)配置文件

9.jar包内部的application.properties或application.yml(不带spring.profile)配置文件

 10.@Configuration注解类上的@PropertySource

11.通过SpringApplication.setDefaultProperties指定的默认属性

所有支持的配置加载来源;

 

springboot配置

标签:nap   sel   bsp   color   加载   参数   文件夹   compiler   dep   

原文地址:https://www.cnblogs.com/neoo9901/p/14090581.html


评论


亲,登录后才可以留言!