springboot的理解

Springboot 理解

IOC 容器:

  主要的包是由org.framwork,beans  和 org.framwork.context 包组成。 

  核心是使用beanfactory 工厂 在实例化对象的时候生成类之间的写作关系, 

加载bean:

springboot bean加载过程   是启动类上run方法 的实现
  1创建bean容器 createApplicationContext 方法
  2 把bean装在到容器中去, prepareContext 方法 是最重要方法
  在怕热prepareContext 方法里面有load() 把声明的配置类加载到容器的具体实现 和 getAllSource()加载声明的配置类
  load 方法实现 最重要的是 是把配置类加载到BeanDefinitionLoader 加载器 中

  使用@AutoConfigurationOrder 是改变了外部依赖的加载顺序是Spring.factories 文件中的加载顺序。

  @AutoConfigurationOrder(10) 这个值越大 在spring.factories 文件中加载的时候越靠前。

 

使用@service 注解 或者是@Componet 注解  把该对象加入到 IOC容器中,

 

  可以通过xml 配置bean标签加到容器中 (版本是在1.x 版本)

    @Required 注解是 设置bean属性setter 方法, bean类中某属性使用这个注解  在xml配置文件中, 必须设置对应类中属性的值

    @Repository的作用:这是因为该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型

    

  可以通过 在类上使用@configuration 在类中 使用@bean 注解来加载到容器中。

  可以通过 @componentScan 扫描包。 没有指定路径就是扫描当前包以及子包下的所有  加载到容器中去。

 

  这个注解是springboot使用比较多。 在springboot自动装配的过程中,不需要的加载容器中的bean的时候就会使用到@condition 注解来实现的。

  @condition 注解  在bean注解上 中使用matches方法 返回值    决定是否加载把当前的bean加载IOC 容器中。

 

源码是使用@import注解 加到容器中。

  使用@import 注解  可以将对象添加到容器中, 返回值是一个数组  可以添加多个, 使用{} 的方式。

  使用@import 注解还可以动态, 实现ImportSelector接口,  在selectImport 方法中添加自己要加的类, 在使用@import 注解在导入实现ImportSelector 接口的类

  使用@import 注解 , 实现importBeanDefinitonRegistar 接口, 中registrarBeanDefinitions 方法,使用注册器的方式,将要注入的类注入到注册器中, 在使用@import 引用实现importBeanDefinitonRegistar 接口的类

 

Spring bean factory 的生命周期:

  bean的生命周期是有两组call back 方法组成。  是在初始化之后调用,和 在销毁之前调用。

  在bean实例化的时候,需要执行一系列的操作达到可用的状态,不需要实例化的时候,就从容器中移除。

 

applicationContext 和 beanFactory 有什么不同, applicationContext 具有和beanFactory 一样的功能, 但是比beanFactory 功能多一点, 还支持国际化的文本信息, 和在监听器中注册bean事件。

 

 

 

 

 

 

 

 

AOP 面向切面编程:

 

 

posted @ 2020-09-16 18:26  那一的眸相遇  阅读(287)  评论(0编辑  收藏  举报