16. 自动配置

Spring Boot的自动配置会尝试根据你添加进来的jar依赖来自动配置你的Spring应用。例如,如果HSQLDB在你的classpath路径上,你没有手动配置任何数据库连接实体类,我们还会自动配置内存数据库。

你可以有选择的实现自动配置,可以向 @Configuration上添加@EnableAutoConfiguration或者@SpringBootApplication注解来实现。

你应该只添加一个@EnableAutoConfiguration注解。我们通常建议你把它添加到你的主要 @Configuration类上。

16.1 逐步覆盖自动配置

自动配置是非入侵式的,任何时候你都可以使用你自定义的配置来覆盖自动配置的特定部分。例如,如果你要添加自己的DataSource bean,默认的内嵌数据库会无效。

如果你需要查找当前应用的自动配置,你可以启动应用时加上–debug开关。它会为核心日志记录器开启debug日志记录,并且会打印自动配置日志信息到控制台。

16.2禁用特定自动配置

如果你发现正在应用的特定自动配置不是你想要的,你可以使用@EnableAutoConfiguration的排除属性来禁用它们。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration {
}

如果这个类不在classpath路径下,你可以使用该注解的excludeName属性以及指定全限定名 来替代。最终,你也可以控制自动配置类的列表来额除spring.autoconfigure.exclude属性。

你可以通过注解级别以及使用属性来定义排除项。

17. Spring Beans和依赖注入

你可以自由使用任何标准Spring框架技术来定义你的beas以及它们的依赖。简单来说,我们通常使用@ComponentScan 来发现你的beans,并且配合@Autowired构造器来更好的注入。

如果你在构造代码时使用上面建议的方式(在根包下定位你的应用类),你可以用@ComponentScan注解,无需任何参数。你所有的应用组件(@Component, @Service, @Repository, @Controller 等等)都会作为Spring Beans来注册。

下面的例子是使用@Service Bean构造器注入用于获取必要的RiskAssessor Bean。

package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service public class DatabaseAccountService implements AccountService {

private final RiskAssessor riskAssessor;

@Autowired public DatabaseAccountService(RiskAssessor riskAssessor) {

this.riskAssessor = riskAssessor;

}

// …

}

请注意使用构造器注入允许使用final标记riskAssessor 对象,表明以后该对象不能被改变。

转载自 并发编程网 - ifeve.com

《Spring Boot官方文档》16. 自动配置相关推荐

  1. 【Spring Boot官方文档原文理解翻译-持续更新中】

    [Spring Boot官方文档原文理解翻译-持续更新中] 文章目录 [Spring Boot官方文档原文理解翻译-持续更新中] Chapter 4. Getting Started 4.1. Int ...

  2. Spring Boot 官方文档学习(一)入门及使用

    Spring Boot 官方文档学习(一)入门及使用 个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问 ...

  3. Spring Boot 官方文档摘要

    Spring Boot 官方文档摘要 一.Develop Your First Spring Boot Application Spring Boot 依赖于 groupId 为 org.spring ...

  4. Spring Boot 官方文档中文版

    目前为最新版 2.5.5. 其他spring文档不断更新中 目前为最新版 2.5.5. 其他spring文档不断更新中 总目录 Spring Boot Reference Documentation ...

  5. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)

    接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...

  6. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion

    本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...

  7. 如何找到spring的官方文档位置

    最近因为项目中遇到了一些问题, 百度不到比较好的方案, 就准备去看下spring的官方文档,  在此记录下: 1. 进入spring framework的官网项目页面: https://spring. ...

  8. 如何找到spring的官方文档

    最近因为项目中遇到了一些问题, 百度不到比较好的方案, 就准备去看下spring的官方文档,  在此记录下: 1. 进入spring framework的官网项目页面: https://spring. ...

  9. Spring指南之使用Spring缓存数据(Spring Framework官方文档之缓存抽象详解)

    1.请参见官方文档Spring指南之使用 Spring 缓存数据 2.请参见Spring官方文档之缓存抽象 3.参见github代码 文章目录 一.简介 二.你将创造什么(What You Will ...

最新文章

  1. “theform._eventtarget 为空或者不是对象”,解决办法
  2. linux下的cat命令
  3. 开发工程中遇到的BUG
  4. 重读模式与架构(2)——层次划分的依据和角色职责
  5. 用NAnt 将StarTeam中的文件CheckOut回本地计算机
  6. 嵌入式系统开发之中断控制的实现
  7. 计算机常见知识大全,电脑基本知识
  8. java 按钮添加音乐_如何使得java swing里加入的背景音乐 可用按钮控制播放与停止...
  9. 移植MyEclipsenbsp;Web项目到Ecli…
  10. eos区块链 java客户端_在EOS区块链上使用EOSJS和scatter开发dApp
  11. 精确休息法——《万维钢.精英日课3》笔记
  12. xshell和xftp免费使用方法
  13. chrome中了flash过期的解决方法
  14. 《Linux C编程从入门到精通》——1.4 Linux的常用命令
  15. 细细品味Flex——BlazeDS开发指南
  16. Unity解析gif动态图
  17. jadx重新打包_[原创]360加固之onCreate函数还原并重打包
  18. css 圆形背景icon_纯CSS3制作精美的圆形扁平风格图标
  19. ctf-WEB-noteasytrick
  20. 网众无盘0基础入门学习图文版已完结

热门文章

  1. 第二周 第七节 列表的使用
  2. java 打印box文件
  3. POJ1942-Paths on a Grid
  4. jsonArray转换成List
  5. HTML5学习笔记(一):HTML简介
  6. 使用ajax进行汽车详情表的查询
  7. LeetCode: Maximum Product Subarray
  8. [原创] Robot framework 基于关键字、BDD驱动的自动化测试框架
  9. 熟悉Redhat 9.0
  10. 极兔收购百世快递,谁是赢家?