当前位置: 首页 > 后端技术 > Node.js

知识分享:SpringIoc实例化Bean对象有几种方式?

时间:2023-04-03 11:02:30 Node.js

Spring方法实例化bean构造方法静态工厂方法实例化工厂方法案例实践构造方法实例化bean对象通过默认构造函数创建空构造函数必须存在,否则创建失败。静态工厂模式特点:必须有工厂类和工厂方法。工厂方法是静态的StaticFactorystaticfactory/**静态工厂模式**/publicclassStaticFactory{publicstaticGoodsServicecreateGoodsService(){//方法必须是静态方法returnnewGoodsService();}}GoodsService实体类publicclassGoodsService{publicvoidgetGoodsInfo(){System.out.println("外星贼贱");}}Bean配置当我们指定Spring使用静态工厂方法来创建Bean实例时,Spring会先解析配置文件,根据配置文件中指定的信息,通过反射调用静态工厂类的静态工厂方法,并将静态工厂方法的返回值作为Bean实例。在这个过程中,Spring不再负责创建Bean实例,Bean实例由用户提供的静态工厂方法提供。与静态工厂的实现相比,实例化工厂创建bean的方法是1.工厂方法是非静态方法。2.需要配置工厂bean,在业务bean中配置factory-bean,factory-method属性实例化工厂定义/**实例化工厂@authorBestLiu**/publicclassInstanceFactory{publicOrderServicecreateOrderService(){返回新的OrderService();}}实体类定义publicclassOrderService{publicvoidgetOrderInfo(){System.out.println("亲,已下单完成,但无法发货");}}Bean配置extendsSpring三种实例改造bean的方式比较方式一:通过创建bean的默认构造函数,可以在各个bean的业务逻辑相对独立或者与外界关系不大的时候使用。方法二:使用静态工厂方法创建,可以统一管理各个bean的创建。如果每个bean在创建前都需要相同的初始化过程,可以先使用这个工厂方法进行统一处理,以此类推。方法三:使用实例化的工厂方法创建,即工厂方法也作为业务bean来控制。1.可用于集成其他框架的bean创建和管理方法2.bean和factory的角色可以互换。开发项目一般使用一个实例化bean的方式有两种。项目开发基本采用第一种方式,交给springhosting。使用的时候可以直接用,另外两个可以理解。