【Spring Boot实战】二 -- 自动配置和自定义配置

来源:互联网 发布:白兔商标查询软件 编辑:程序博客网 时间:2024/06/15 18:29

1.自动配置

1.1起步依赖

使用起步依赖,就省去了很多自己配置的问题。起步依赖本质上是一个Maven项目对象模型,定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或某类功能。使用默认的依赖可以满足大部分的情况。
如果想要覆盖起步依赖引入的传递依赖,如果在用Gradle,你可以这样排除传递依赖:compile("org.springframework.boot:spring-boot-starter-web") {    exclude group: 'com.fasterxml.jackson.core'}如果在maven里:<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId>    <exclusions>        <exclusion>            <groupId>com.fasterxml.jackson.core</groupId>        </exclusion>    </exclusions></dependency>

1.2自动配置

Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。在ClassPath中有的,则自动配置。需要实现Condition接口,重写matches()方法。

这里写图片描述

2.自定义配置

虽然大部分情况下,Spring Boot的自动配置可以满足我们的需求。但是总有一些无法满足,需要我们自己去定义。

Spring Boot的设计是加载应用级配置,随后再考虑自动配置类。

2.1 显式的配置

@ConfigurationSpring Boot自动配置以外的其他Spring配置,组件扫描器会发现并使用该类。@ConditionalOnMissingBean 显式覆盖的关键但是这种方法显然有些太过于大张旗鼓,我们可以通过属性文件微调配置。

2.2 属性文件外置配置

设置application.properties微调配置application.properties文件能放在以下四个位置。(1) 外置,在相对于应用程序运行目录的/config子目录里。(2) 外置,在应用程序运行的目录里。(3) 内置,在config包内。(4) 内置,在Classpath根目录。同样,这个列表按照优先级排序。也就是说,/config子目录里的application.properties会覆盖应用程序Classpath里的application.properties中的相同属性。举个栗子:server.port=52001   指定端口号logging.config=classpath:log4j2-spring.xml  日志配置logging.level.root=DEBUG    日志级别
原创粉丝点击