Spring从入门到精通(六)—实例化Bean的三种⽅式

网友投稿 709 2022-11-03

Spring从入门到精通(六)—实例化Bean的三种⽅式

Spring从入门到精通(六)—实例化Bean的三种⽅式

使用无参构造方法实例化

在默认情况下,它会通过反射调⽤⽆参构造函数来创建对象。如果bean中没有默认无参构造函数,将会创建失败

工厂静态方法实例化

工厂的静态方法返回Bean实例在实际开发中,我们使⽤的对象有些时候并不是直接通过构造函数就可以创建出来的,它可能在创建的过程 中会做很多额外的操作。此时会提供⼀个创建对象的⽅法,恰好这个⽅法是static修饰的⽅法,即是此种情况。例如,我们在做Jdbc操作时,会⽤到java.sql.Connection接⼝的实现类,如果是mysql数据库,那么⽤的就 是JDBC4Connection,但是我们不会去写JDBC4Connection connection = new JDBC4Connection() ,因为我们要注册驱动,还要提供URL和凭证信息,⽤DriverManager.getConnection ⽅法来获取连接。

public class StaticFactoryBean { public static UserDao createUserDao(){ return new UserDaoImpl(); } }

工厂实例方法实例化

工厂的非静态方法返回Bean实例此种⽅式和上⾯静态⽅法创建其实类似,区别是⽤于获取对象的⽅法不再是static修饰的了,⽽是类中的⼀ 个普通⽅法。此种⽅式⽐静态⽅法创建的使⽤⼏率要⾼⼀些。在早期开发的项⽬中,⼯⼚类中的⽅法有可能是静态的,也有可能是⾮静态⽅法,当是⾮静态⽅法时,即可采⽤下⾯的配置⽅式

public class DynamicFactoryBean { public UserDao createUserDao(){ return new UserDaoImpl(); } }

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot项目拦截器获取Post方法的请求body实现
下一篇:swoole-task分布式任务处理框架,基于swoole扩展,使用composer打包
相关文章

 发表评论

暂时没有评论,来抢沙发吧~