让我看看怎么个事儿之SpringBoot自动配置.docx

让我看看怎么个事儿之SpringBoot自动配置.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

让我看看怎么个事儿之SpringBoot自动配置

学习SpringBoot自动配置之前我们需要一些前置知识点:

学会@ConfigurationProperties月薪过三千

不是银趴~是@Import!

@Conditional+@Configuration有没有搞头?

首先我们提出2个问题:

SpringBoot是干什么的?

是用来简化Spring原生的复杂的xml配置的进阶框架。

自动配置是什么?

我们用另外一个问题回答这个问题。

我们在SpringBoot开发中,就写了几个配置,怎么连接上的数据库?

spring:

datasource:

driverClassName:com.MySQL.cj.jdbc.Driver

url:jdbc:mysql://192.0.0.1:3306/testuseUnicode=trueuseSSL=falseserverTimezone=Asia/ShanghAI

username:root

password:root

在新手村时期,我们照着教程生搬硬抄的时候可能也想过这个问题,今天就来简单探究一下。

再次强调:

看明白本篇内容需要前置知识点,尤其是@Import注解。

这一切都要从@SpringBootApplication注解讲起。

@SpringBootApplication

@SpringBootApplication注解是一个复合注解,它由如下三个注解组成。

@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@interfaceSpringBootApplication{

@SpringBootApplication

├──@ComponentScan

├──@SpringBootConfiguration

│└──@Configuration

└──@EnableAutoConfiguration

├──@Import(AutoConfigurationImportSelector.class)

└──@AutoConfigurationPackage

└──@Import(AutoConfigurationPackages.Registrar.class)

@SpringBootConfiguration

@ComponentScan

@EnableAutoConfiguration

从注解的中文意思中也可以看出来,第三个@EnableAutoConfiguration是与我们自动配置紧密相关的。

我们先快速搞定前2个。

@SpringBootConfiguration

这个最简单,把头套摘下来,他就是一个普普通通的@Configuration注解包装而成而已,表示当前类是一个配置类。

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Configuration//本体在这

public@interfaceSpringBootConfiguration{

@ComponentScan

可以指定basePackageClasses或basePackages(或其别名value)来定义要扫描的特定包。如果没有定义特定包,扫描将从声明此注解的类的包开始。

顾名思义就是扫描Component。

扫描哪里?

可以通过该注解的属性指定Spring应该扫描的包。如果没有指定包,则默认扫描声明@ComponentScan的类所在的包及其子包。

哪些Component?

使用@Component,@Service,@Repository,@Controller等注解的类。

扫描了做什么用?

将扫描

文档评论(0)

152****4498 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档