- @EnableAutoConfiguration: 该注解由组合注解@SpringBootApplication引入,完成自动配置开启.扫描各个jar包下的spring.factories文件,并加载文件中注册的AutoConfiguration类等。
- spring.factories: 配置文件,位于jar包的META-INF目录下,按照指定各式注册了AutoConfiguration类。spring. factories也可以包含其他类型待注册的类。该配置文件不仅存在于Spring Boot项目中,也可以存在于自定义的自动配置(或Starter) 项目中。
-
AutoConfiguration类: 自动配置类,代表了Spring Boot中-类以*AutoConfiguration命 名的自动配置类。
其中定义了三方组件集成Spring所需初始化的Bean和条件。 -
@Conditional: 条件注解及其衍生注解,在AutoConfiguration类 上使用,当满足该条件注解时才会实例
化AutoConfiguration类。 -
Starters: 三方组件的依赖及配置,Spring Boot已经预置的组件。Spring Boot默认的Starters项目往往只
包含了一-个pom依赖的项目。如果是自定义的starter,该项目还需包含spring factories文件、AutoConfiguration类和其他配置类。
@EnableAutoConfiguration
@EnableAutoConfiguration的主 要功能是启动Spring应用程序上下文时进行自动配置,它会尝试猜测并配置项目可能需要的Bean。自动配置通常是基于项目classpath中引入的类和已定义的Bean来实现的。在此过程中,被自动配置的组件来自项目自身和项目依赖的jar包中。
举例:若将tomcat- embedded.jar添加到classpath下,则@EnableAutoConfiguration会认为你准 备使用TomcatServletWebServerFactory类,帮你初始化相关配置。同时,若自定义了基于ServletWebServerFactory的Bean,则@EnableAutoConfiguration将不会 进行TomcatServletWebServerFactory类的初始化。这一系列的操作判断都由Spring Boot来完成。
一层层跳找核心点,去找配置文件,加载自动配置类
IoC容器的初始化
利用FactoryBean装载一个特殊的对象,在写代码的时候这个类是别人设计的,没有加注解,还想让它加载到容器里:
记日志,各处调用的都有,如果记日志的方法变了,那改动这些代码,工程量巨大。
单独把这些逻辑抽取出来,单独去实现。
方面:分散代码中的业务逻辑的关注点,将关注点抽取出来封装一下
把之前在分散地方的零碎的代码挪到了统一的地方去实现,就叫方面编程
例如程序中的每个service都是Target,在service中以find方法开头的为连接点,(在100个方法里面有1000个以find方法开头的,这1000个连接点上都要记日志,分四步解决)
1、创建一个类(方面),同意解决问题 @Aspect注解修饰的类
2、定义一个方法,在方法上使用PonitCut修饰,规定哪些类的哪些方法需要附加这个逻辑
3、在方法中的那个位置去解决问题呢,在写方法声明before。。。。
以上做完后,这个类自动生效。为什么特定的时机,这个逻辑会被织入到方法对应的位置去
4、织入(运行时织入,生成代理对象)
JDK的动态代理
代理对象也要放到工厂里面去 FeactoryBean
三. Spring MVC
3.1主要流程
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92123 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!