zoukankan      html  css  js  c++  java
  • 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 面向切面编程:

     

  • 相关阅读:
    Fiddler: Creation of interception certificate failed.
    ip地址检查正则表达式 兼容ipv4,ipv6
    母版页与子页的启动过程
    erlang 读取confg文件异常 could not start kernel pid error in config file
    转义字符 显示形式 转换成 实际形式 \\n to \n
    How to use epoll? A complete example in C
    Lex & Flex 词法分析器实践(未完,持续更新)
    我理解的爱情———柳智宇 (转载)
    Learning by doing 系列文章概述
    锁与RCU数据共享机制
  • 原文地址:https://www.cnblogs.com/yishuo/p/13680649.html
Copyright © 2011-2022 走看看