一.基本配置

1.1 springboot入口类@SpringBootApplication

@SpringBootApplication 是springboot的核心注解,它是一个组合注解:

@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) })
        

虽然定义使用了多个Annotation进行了原信息标注,但实际上重要的只有三个Annotation:

@Configuration(@SpringBootConfiguration点开查看发现里面还是应用了@Configuration)
这里的@Configuration对我们来说不陌生,它就是JavaConfig形式的Spring Ioc容器的配置类使用的那个@Configuration,SpringBoot社区推荐使用基于JavaConfig的配置形式,所以,这里的启动类标注了@Configuration之后,本身其实也是一个IoC容器的配置类。

@EnableAutoConfiguration,大家是否还记得Spring框架提供的各种名字为@Enable开头的Annotation定义?比如@EnableScheduling、@EnableCaching、@EnableMBeanExport等,@EnableAutoConfiguration的理念和做事方式其实一脉相承,简单概括一下就是,借助@Import的支持,收集和注册特定场景相关的bean定义。

@ComponentScan这个注解在Spring中很重要,它对应XML配置中的元素,@ComponentScan的功能其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。


1.2 定制Banner

  1. springboot在启动的时候

clipboard.png

  1. src/main/resource下新建一个banner.txt文件
  2. 通过生成字符网站生成想要的字符如:lvmama

clipboard.png


1.3 springboot 配置文件

1.3.1 文件自定义属性

spring Boot使用一个全局配置文件application.properties或application.yml,作用是对一些默认的配置进行修改,一个简单的案例:

将Tomcat默认端口8080修改成8088,默认的访问路径"/"改为"/lvmama"

application.yml:

server:
  port: 8088
  context-path: /lvmama

application.properties

server.port: 8088
server.context-path: /lvmama
  • 推荐使用application.yml,配合看起来更直观,清晰。yml 文件在写的时候层次感强,而且少写了代码。

1.3.1 随机值配置文件

配置文件中${random} 可以用来生成各种不同类型的随机值,从而简化了代码生成的麻烦,例如 生成 int 值、long 值或者 string 字符串。

dudu.secret=${random.value}
dudu.number=${random.int}
dudu.bignumber=${random.long}
dudu.uuid=${random.uuid}
dudu.number.less.than.ten=${random.int(10)}

1.3.2 外部配置-命令行参数配置

java -jar xx.jar --server.port=9090

1.3.3 配置文件的优先级

application.properties和application.yml文件可以放在一下四个位置:

  • 外置,在相对于应用程序运行目录的/congfig子目录里。
  • 外置,在应用程序运行的目录里
  • 内置,在config包内
  • 内置,在Classpath根目录

同样,这个列表按照优先级排序,也就是说,src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性,如图:

clipboard.png

此外,如果你在相同优先级位置同时有application.properties和application.yml,那么application.yml里面的属性就会覆盖application.properties里的属性。

1.3.4 Profile-多环境配置

Profile是Spring用来针对不同环境提供不同配置的支持,全局Profile配置使用application-{profile}.properties。通过application.properties中设置spring.profiles.active值

  1. 在src/resources/下新建application-normal.yml和application-trunk.yml文件并分别配置

    application-normal.yml

    server:
      port: 8080
      context-path: /lvmama/normal
    

    application-trunk.yml

     server:
      port: 80
      context-path: /lvmama/trunk
      
  2. application.properties中配置默认值:

    spring:
      profiles:
        active: trunk
  3. 使用 mvn spring-boot:run -Drun.profiles=normal

clipboard.png

clipboard.png

拓展:

http://blog.javachen.com/2016...
http://blog.csdn.net/lihe2008...


Gent
209 声望18 粉丝

今天不走,明天要跑!!!