spring
木叶二柱子
这个作者很懒,什么都没留下…
展开
-
Spring注解
注解 @Component:Bean组件定义 @Repository:标注Dao类 @Repository public class BookDao implements IBookDao{} || <bean class="com.lzy.dao.BookDao" id="bookDao"> @Service:标注业务类(Service) @Service @Scope("prototype") public class BookService implements IB原创 2022-01-13 09:42:48 · 71 阅读 · 0 评论 -
Spring设计模式
设计模式 单例模式:spring中bean都是单例 工厂模式:BeanFactory(只要结果不要过程) 模板模式:空方法,由子类实现 观察者模式:listener 适配器模式:adapter 装饰者模式:BeanWrapper 责任链模式:使用aop时 代理模式:aop动态代理 委托者模式: 建造者模式: 策略模式: ...原创 2022-01-13 09:40:53 · 52 阅读 · 0 评论 -
IOC理解
IOC 控制反转,原来我们使用对象是由使用者控制,有了spring之后,可以将整个对象交给容器来帮我们进行管理(理论思想) DI 依赖注入,将对应的属性注入到具体的对象中 @Autowired、@Resource、populateBean方法完成属性注入 容器 存储对象,使用map结构存储对象,在spring存储对象时,有三级缓存,整个bean的生命周期,从创建到使用到销毁,各个环节由容器帮我们控制。(bean有反射生成的,创建对象后还有的是填充属性) ...原创 2022-01-13 09:40:22 · 59 阅读 · 0 评论 -
Bean生命周期
bean生命周期 spring容器帮助我们去管理对象,从对象的产生到销毁都由容器控制(实例化-初始化) 实例化bean对象,反射生成(createBeanInstance) bean对象创建后,属性是默认值,填充属性(populateBean)——循环依赖 设置容器属性 调用BeanPostProcessor中的前置处理,进行bean对象的扩展工作 调用invokeInitMethods方法完成初始化方法的调用(判断bean对象是否实现InitializingBean接口),如实现,则调用afterPr原创 2022-01-13 09:39:52 · 52 阅读 · 0 评论 -
数据填充—循环依赖—三级缓存
循环依赖 A依赖B,B依赖A 解决 spring中bean的创建都要经历实例化和初始化(属性填充)的过程; 通过将对象的状态分开,存在半成品和成品对象的方式,成品和半成品在存储时需要分不同的缓存来进行存储 一级缓存:成品 二级缓存:半成品 三级缓存:Lambda 表达式(保障整个容器内同名的bean只有一个)(绑定AOP——代理) ...原创 2022-01-13 09:38:57 · 234 阅读 · 0 评论 -
Spring框架
Spring框架 功能 IOC:控制反转(依赖式注入)。创建对象统一交给spring框架管理,注入对象功能。(Service、dao不需要手动new,由spring给、框架创建对象) AOP:面向切面编程,在不改变源代码情况下,在方法前后增加额外的功能 注意: 面向切面编程:预编译+运行期动态代理(service接口) AOP使用 Controller 用Service接口定义的成员变量 Service接口 service实现类 Mapper接口 Mapper 实现类 application原创 2022-01-13 09:35:29 · 54 阅读 · 0 评论 -
BeanFactory与FactoryBean对比
异 BeanFactory严格遵守bean生命周期,经过一系列步骤创建出单例对象,流水线式 FactoryBean用户自定义bean对象,不需要按照bean的生命周期,(Feign)三个重要方法: isSingleton:判断是否单例 getObjectType:获取对象类型 getObject:创建对象,使用new或代理 同 两者都可用来创建对象 ...原创 2022-01-13 09:34:08 · 59 阅读 · 0 评论