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对象有可能不是同一个对象

  • 相关阅读:
    更新主窗口控件的内容1:子线程工作时同时更新主线程内的控件内容
    静态类和非静态类中静态变量
    js $的扩展写法
    js 获取时区
    export to excel
    使用Sqlserver事务发布实现数据同步(zhuanqian)
    json to entity in api
    automapper demo
    autoMapper的介绍
    Springboot的热部署
  • 原文地址:https://www.cnblogs.com/Baronboy/p/14508239.html
Copyright © 2011-2022 走看看