zoukankan      html  css  js  c++  java
  • mybatis

    mybatis源码设计模式

    看源码技巧: 宏观->微观->图解
    mapper有四种形式: resource, url, class, package
    哪种优先级最高: package-> resource -> url -> class

    建造者模式: mybatis初始化参数过多,所有将繁杂的参数封装到一个对象中,利用建造者模式进行初始化

    执行器的3种枚举类型


    默认是使用SIMPLE

    mybatis默认的一级缓存是否开启:开启

    会创建缓存执行器
    openSession实际上是对执行器进行初始化

    Bean的生命周期

    需要有一个class -> BeanDefinition -> BeanFactoryPostProcesor(这个是后置处理器,BeanFactory需要构建,构建后就执行后置处理器) -> 创建实例 new UserService() -> 填充属性 ->
    Aware(将spring生成的beanName回传),实现BeanNameAware接口可以获取到容器生成的beanName
    实现BeanFactoryAware接口可以得到BeanFactory的名称
    -> 初始化 -> APO -> 单例池(Map<BeanName,对象>)

    BeanDefinition

    beanFactory.registerSingleton("XXX",new User()); 可以new一个对象交给spring

    使用FactoryBean的方式

    spring循环依赖

    自己手工new出来的两个相互依赖的对象是不会产生问题的
    spirng中一个对象会经过一系列的bean生命周期才会创建出来,才会出现循环依赖的问题

    循环依赖解决办法

    注入B的A对象和加工后的A对象有可能不是同一个对象

  • 相关阅读:
    制造者为什么重要
    归因理论
    初创业谨记有三法宝:顶梁柱、现金牛、北极星
    华特迪士尼语录
    说好一个创业故事的5个步骤
    接口
    抽象类_模板方法设计模式
    抽象类与抽象方法
    非static和static初始化块
    单例设计模式
  • 原文地址:https://www.cnblogs.com/Baronboy/p/14508239.html
Copyright © 2011-2022 走看看