大家好,我是老三,上节我们手撸了一个简单的IOC容器五分钟,手撸一个Spring容器!,这节我们来看一看Spring中Bean的生命周期,我发现,和人的一生真的很像。简单说说IoC和BeanIoC,控制反转,想必大家都知道,所谓的控制反转,就是把new对象的权利交给容器,所有的对象都被容器控制,这就叫所谓的控制反转。Bean,也不是什么新鲜玩意儿,它们就是一帮身不由己的Java对象,生命周期受到容器控制。Bean生命周期和人生Bean生命周期四大阶段我们知道,bean的作用域有好几种,这篇文章只讨论完全被IoC容器控制的单例Bean。对于普通的Java对象来说,它们的生命周期就是:实例化对象不
目录一:Bean的实例化方式1. 通过构造方法实例化2. 通过简单工厂模式实例化3. 通过factory-bean实例化4. 通过FactoryBean接口实例化5. BeanFactory和FactoryBean的区别(面试题)6.使用FactoryBean注入自定义Date一:Bean的实例化方式Spring为Bean提供了多种实例化方式,通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活)第一种:通过构造方法实例化第二种:通过简单工厂模式实例化第三种:通过factory-bean实例化(工厂方法模式)第四种:通过FactoryBean接口实例
目录一:Bean的实例化方式1. 通过构造方法实例化2. 通过简单工厂模式实例化3. 通过factory-bean实例化4. 通过FactoryBean接口实例化5. BeanFactory和FactoryBean的区别(面试题)6.使用FactoryBean注入自定义Date一:Bean的实例化方式Spring为Bean提供了多种实例化方式,通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活)第一种:通过构造方法实例化第二种:通过简单工厂模式实例化第三种:通过factory-bean实例化(工厂方法模式)第四种:通过FactoryBean接口实例
如果一个BEAN类上加了@Transactional,则默认的该类及其子类的公开方法均会开启事务,但有时某些业务场景下某些公开的方法可能并不需要事务,那这种情况该如何做呢?常规的做法:针对不同的场景及事务传播特性,定义不同的公开方法【哪怕是同一种业务】,并在方法上添加@Transactional且指明不同的传播特性,示例代码如下:@Service@TransactionalpublicclassDemoSerivce{//SUPPORTED若无事务传播则默认不会有事务,若有事务传播则会开启事务@Transactional(propagation=Propagation.SUPPORTED)pu
如果一个BEAN类上加了@Transactional,则默认的该类及其子类的公开方法均会开启事务,但有时某些业务场景下某些公开的方法可能并不需要事务,那这种情况该如何做呢?常规的做法:针对不同的场景及事务传播特性,定义不同的公开方法【哪怕是同一种业务】,并在方法上添加@Transactional且指明不同的传播特性,示例代码如下:@Service@TransactionalpublicclassDemoSerivce{//SUPPORTED若无事务传播则默认不会有事务,若有事务传播则会开启事务@Transactional(propagation=Propagation.SUPPORTED)pu
GoF之工厂模式GoF是指二十三种设计模式GoF23种设计模式可分为三大类:创建型(5个):解决对象创建问题。单例模式工厂方法模式抽象工厂模式建造者模式原型模式结构型(7个):一些类或对象组合在一起的经典结构。代理模式装饰模式适配器模式组合模式享元模式外观模式桥接模式行为型(11个):解决类或对象之间的交互问题。策略模式模板方法模式责任链模式观察者模式迭代子模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式工厂模式是解决对象创建问题的,所以工厂模式属于创建型设计模式。这里为什么学习工厂模式呢?这是因为Spring框架底层使用了大量的工厂模式。1.1工厂模式的三种形态工厂模式通常有三种
GoF之工厂模式GoF是指二十三种设计模式GoF23种设计模式可分为三大类:创建型(5个):解决对象创建问题。单例模式工厂方法模式抽象工厂模式建造者模式原型模式结构型(7个):一些类或对象组合在一起的经典结构。代理模式装饰模式适配器模式组合模式享元模式外观模式桥接模式行为型(11个):解决类或对象之间的交互问题。策略模式模板方法模式责任链模式观察者模式迭代子模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式工厂模式是解决对象创建问题的,所以工厂模式属于创建型设计模式。这里为什么学习工厂模式呢?这是因为Spring框架底层使用了大量的工厂模式。1.1工厂模式的三种形态工厂模式通常有三种
SpringSpring为简化开发而生,让程序员只关心核心业务的实现,尽可能的不在关注非业务逻辑代码(事务控制,安全日志等)。1,Spring八大模块这八大模块组成了Spring1.1SpringCore模块这是Spring框架的最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。核心容器的主要组件时BeanFactory,BeanFactory是工厂模式的一个实现,是任何Spring应用的核心。它使用Ioc将应用配置和依赖从实际的应用代码中抽离出来。1.2SpringContext模块如果说核心模块中的BeanFactory使Spring成
SpringSpring为简化开发而生,让程序员只关心核心业务的实现,尽可能的不在关注非业务逻辑代码(事务控制,安全日志等)。1,Spring八大模块这八大模块组成了Spring1.1SpringCore模块这是Spring框架的最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。核心容器的主要组件时BeanFactory,BeanFactory是工厂模式的一个实现,是任何Spring应用的核心。它使用Ioc将应用配置和依赖从实际的应用代码中抽离出来。1.2SpringContext模块如果说核心模块中的BeanFactory使Spring成
SpringSpring为简化开发而生,让程序员只关心核心业务的实现,尽可能的不在关注非业务逻辑代码(事务控制,安全日志等)。1,Spring八大模块这八大模块组成了Spring1.1SpringCore模块这是Spring框架的最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。核心容器的主要组件时BeanFactory,BeanFactory是工厂模式的一个实现,是任何Spring应用的核心。它使用Ioc将应用配置和依赖从实际的应用代码中抽离出来。1.2SpringContext模块如果说核心模块中的BeanFactory使Spring成