Spring可通过静态工厂方法创建Bean,需在XML中配置class为工厂类、factory-method指定静态方法名,或用@Bean注解直接调用静态方法;静态工厂无需实例化,而实例工厂需通过factory-bean引用已托管的工厂Bean。
Spring 可以通过静态工厂方法创建 Bean,关键在于配置中指定 class 为工厂类,并用 factory-method 指定静态方法名,不配置 constructor-arg 给工厂本身(因为是静态的,无需实例化工厂)。
假设有一个静态工厂类:
public class DataSourceFactory { public static DataSource createDataSource() { HikariDataSource ds = new HikariDataSource(); ds.setJdbcUrl("jdbc:h2:mem:test"); ds.setUsername("sa"); return ds; }}
在 Spring XML 中这样声明 Bean:
<bean id="dataSource" class="com.example.DataSourceFactory" factory-method="createDataSource"/>
constructor-arg 或 factory-bean(那是实例工厂才用的)<constructor-arg> 传入,对应方法形参顺序和类型在配置类中直接调用静态方法并返回对象:
立即学习“Java免费学习笔记(深入)”;
@Configurationpublic class AppConfig { @Bean public DataSource dataSource() { return DataSourceFactory.createDataSource(); }}
class + factory-method 和 factory-bean + factory-method(后者用于实例工厂)class + factory-method
factory-bean + factory-method
tplink路由器默认密码是多少(tplink路由器默认密码详解)
tplink路由器默认密码怎么查看(tplink路由器默认密码查看方法)
tplink无线路由器密码怎么重置(tplink无线路由器密码重置方法)
手机如何设置tplink无线路由器密码和密码共享功能(手机设置tplink无线路由器密码和密码共享功能方法)
tplink无线路由器密码忘记了怎么办(tplink无线路由器密码忘记了解决方案)
tplogin路由器可以无线桥接么(TPLink路由器是否支持无线桥接功能)