Spring Boot 配置

Spring Boot 配置



1. 基本配置:

  • 启动配置
    • @SpringBootApplication 是 Spring Boot 的 核心注解
      • package org.springframework.boot.autoconfigure;
        import java.lang.annotation.Documented;
        import java.lang.annotation.ElementType;
        import java.lang.annotation.Inherited;
        import java.lang.annotation.Retention;
        import java.lang.annotation.RetentionPolicy;
        import java.lang.annotation.Target;
        import org.springframework.boot.SpringBootConfiguration;
        import org.springframework.boot.context.TypeExcludeFilter;
        import org.springframework.context.annotation.ComponentScan;
        import org.springframework.context.annotation.FilterType;
        import org.springframework.context.annotation.ComponentScan.Filter;
        import org.springframework.core.annotation.AliasFor;

        @Target({ElementType.TYPE})
        @Retention(RetentionPolicy.RUNTIME)
        @Documented
        @Inherited
        @SpringBootConfiguration
        @EnableAutoConfiguration  
        @ComponentScan(
        excludeFilters = {@Filter(
        type = FilterType.CUSTOM,
        classes = {TypeExcludeFilter.class}
        ), @Filter(
        type = FilterType.CUSTOM,
        classes = {AutoConfigurationExcludeFilter.class}
        )}
        )
        public @interface SpringBootApplication {
        @AliasFor(
        annotation = EnableAutoConfiguration.class,
        attribute = "exclude"
        )
        Class<?>[] exclude() default {};

        @AliasFor(
        annotation = EnableAutoConfiguration.class,
        attribute = "excludeName"
        )
        String[] excludeName() default {};

        @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackages"
        )
        String[] scanBasePackages() default {};

        @AliasFor(
        annotation = ComponentScan.class,
        attribute = "basePackageClasses"
        )
        Class<?>[] scanBasePackageClasses() default {};
        }
         解析:@SpringBootApplication 注解主要由一组注解组成:
               1. @Configuration 
               2. @EnableAutoConfiguation 让 Spring Boot 根据类路径中的jar包依赖为当前项目进行自动                        配置
               3. @ComponentScan

  • 代码如下:
    • /**
      * Created by Calvin on 2018/2/26
      */
      @RestController

      /**
      * @SpringBootApplication 开启自动配置
      * @SpringBootApplication(exclude = {EnableAutoConfiguration.class}) 关闭特定的自动配置
      */
      @SpringBootApplication
      public class SpringBootStarterApplication {

      @RequestMapping("/")
      String index(){
        return "Hello Spring Boot";
      }
      /**
      * main 开启启动项目的入口
      * @param args
      */
      public static void main(String[] args) {
      SpringApplication app = new SpringApplication(SpringBootStarterApplication.class);
      app.run(args);
      }

  • 定制 Banner
    • 方法如下:
    • Spring Boot 配置
    • 运行启动
  • Spring Boot 配置

  • 关闭 banner
    • SpringApplication app = new SpringApplication(SpringBootStarterApplication.class);
      // 开启/关闭 banner
      app.setBannerMode(Banner.Mode.CONSOLE);
      app.run(args);

  • Spring Boot 配置文件(application.properties 或 application.yml)
    • application.properties 
      • application.properties 作用:对一些默认配置的配置值进行修改
        # method one: Tomcat的默认端口号8080修改为9090,并将默认的访问路径“/”修改成为“/helloSpringBoot”
        server.port=9090
        server.context-path=/helloSpringBoot

    • application.yml 
      • appliaction.yml: yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。
        spring boot 还支持yaml 语言的配置文件
        # method two Tomcat的默认端口号8080修改为9090,并将默认的访问路径“/”修改成为“/helloSpringBoot”
        server:
        port: 9090
        contextPath: /helloSpringBoot
                    
  • 使用xml 配置
    • /**
      * @ImportResource 加载指定文件
      * @ImportResource({"classpath:some-context.xml","classpath:another-context.xml"}) 使用 xml 配置
      */
      @ImportResource
                 public class SpringBootStarterApplication {


2.日志配置:
  • application.properties 日志配置
    • # 日志配置 (默认情况下 Spring Boot 使用LogBack 作为日志框架)
      # 配置日志级别
      logging.file= G:/localspace/spring/spring%20boot/springboot.log
      # 配置日志文件吗,格式为logging.level.包名=级别

3.Profile 配置:

  • Profile 是 Spring 用来针对不同的环境对不同的配置提供支持的
    • 在application.properties 文件中添加
      • spring.profiles.active=dev
    • 生产环境 
      • 新建文件为:application-dev.properties
    • 开发环境
      • 新建文件为:application-prod.properties