@EnableAutoConfiguration激活自动装配
给予上个例子,将WebConfiguration类上的@SpringBootApplication换成@EnableAutoConfiguration。启动并运行http://localhost:8080/hello,发现依然可以执行。
说明:
1、尽管WebConfiguration类不再是@Configuration,因为@EnableAutoConfiguration并非@Configuration的“派生”注解,但依然能执行。
2、SpringApplication.run方法引导Spring Boot应用时,并不强制依赖@Configuration。
看出@EnableAutoConfiguration与@SpringBootApplication在激活自动装配方面是没有差别的,然而对被标注类的Bean的类型存在差异。为什么呢?因为CGLIB。
@Component不存在CGLIB;而@Configuration执行了CGLIB提升。
而spring-boot-autoconfigure作为boot的核心jar,其中提供了大量的内建自动装配@Configuration类,他们统一放在org.springframework.boot.autoconfigure包或子包下,同时,这些类均配置在META-INF/spring.factories资源中。
#auto configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,=\
如何将RabbitAutoConfiguration自动装配到boot中呢?通过CGLIB。
因此,一句话:@EnableAutoConfiguration无法装配大量的内建自动装配@Configuration类,而@SpringBootApplication可以(因为标注了@Configuration)。所以,尽量用@SpringBootApplication吧。
但是,如果我非用@EnableAutoConfiguration而不用@SpringBootApplication该怎么办呢?详见下一篇《创建自动配置类》
@EnableAutoConfiguration激活自动装配的更多相关文章
- 一步步从Spring Framework装配掌握SpringBoot自动装配
目录 Spring Framework模式注解 Spring Framework@Enable模块装配 Spring Framework条件装配 SpringBoot 自动装配 本章总结 Spring ...
- Spring Boot 自动装配(二)
目录 目录 前言 1.起源 2.Spring Boot 自动装配实现 2.1.@EnableAutoConfiguration 实现 2.1.1. 获取默认包扫描路径 2.1.2.获取自动装配的组件 ...
- Spring Boot之从Spring Framework装配掌握SpringBoot自动装配
Spring Framework模式注解 模式注解是一种用于声明在应用中扮演“组件”角色的注解.如 Spring Framework 中的 @Repository 标注在任何类上 ,用于扮演仓储角色的 ...
- springboot自动装配介绍
所谓的自动装配,就是 autowire. 如何激活自动装配呢? 方法一:@EnableAutoConfiguration或@SpringBootApplication,写在@Configuration ...
- SpringBoot自动装配-源码分析
1. 简介 通过源码探究SpringBoot的自动装配功能. 2. 核心代码 2.1 启动类 我们都知道SpringBoot项目创建好后,会自动生成一个当前模块的启动类.如下: import org. ...
- springboot自动装配(1)---@SpringBootApplication注解怎么自动装配各种组件
1.对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter) 2.@SpringBootApplication注解其实就是组合注解,通过它找到自动装配的注 ...
- Spring Boot自动装配原理源码分析
1.环境准备 使用IDEA Spring Initializr快速创建一个Spring Boot项目 添加一个Controller类 @RestController public class Hell ...
- springboot源码解析-管中窥豹系列之自动装配(九)
一.前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...
- 【面试普通人VS高手系列】Spring Boot中自动装配机制的原理
最近一个粉丝说,他面试了4个公司,有三个公司问他:"Spring Boot 中自动装配机制的原理" 他回答了,感觉没回答错误,但是怎么就没给offer呢? 对于这个问题,看看普通人 ...
随机推荐
- dMd----攻防世界
首先在Linux上查看题目,没有什么发现elf文件,之后使用ida打开看看,找到main函数,f5查看, 上图一些字符是char过的,便于查看,发现是一个if else语句,先经过了MD5加密然后判断 ...
- NMEA-0183
GPGSA( 当前卫星信息) 例:$GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0A 字段0:$GPGSA,语句ID,表明该语句为GPS DO ...
- R WLS矫正方差非齐《回归分析与线性统计模型》page115
rm(list = ls()) A = read.csv("data115.csv") fm = lm(y~x1+x2,data = A) coef(fm) A.cooks = c ...
- Yarn的资源调优
一.概述 每个job提交到yarn上执行时,都会分配Container容器去运行,而这个容器需要资源才能运行,这个资源就是Cpu和内存. 1.CPU资源调度 目前的CPU被Yarn划分为虚拟CPU,这 ...
- 07 MySQL常用内置函数
常用函数 1.字符串函数 CONCAT(str1,str2,..,strN) 将str1,str2..strN 拼接成一个字符串,当这里有任何一个为NU ...
- Centos7忘记mysql的root用户密码
1.先停止mysql服务 [root@CentOS ~]# ps -ef | grep mysql root : pts/ :: /bin/sh /usr/local/mysql/bin/mysql ...
- Day 31:CSS选择器、常用CSS样式、盒子模型
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 原生searchView 自定义样式
https://www.jianshu.com/p/f1fe616d630d 去除搜索框中的图标 <style name="SeachViewActivityTheme" p ...
- RadioGroup的使用
前言: 使用RadioGroup就可以在选择情况多的时候,简化代码 RadioGroup 使用互斥选择时,会使用RadioGroup标签下面RadioButton,如下面的代码:(这样写下来,男和女的 ...
- 14.swoole学习笔记--异步读取文件
<?php //异步读取文件 swoole_async_readfile(__DIR__."/1.txt",function($filename,$content){ ech ...