Spring创建复杂对象

何为复杂对象?

在java中,不能通过new关键字创建的对象,都称为复杂对象,如抽象类(abstract,例如Calendar日期类)、接口(interface,JDBC中的Connection连接类)。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

复杂对象(如Calendar日期类)的普通创建方式:

Calendar calendar = Calendar.getInstance();

System.out.println(newSimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));

在spring工厂中,复杂对象的创建方式:

1.类 implements FactoryBean<Calendar>接口

//创建复杂对象的方法,并将创建对象返回
@Override
public Calendar getObject() throws Exception {
return Calendar.getInstance();
}
//创建复杂对象的类型
@Override
public Class<?> getObjectType() {
return Calendar.class;
}
//复杂对象在工厂中创建的次数,true表示单例,false表示多例
@Override
public boolean isSingleton() {
return true;
}
}
//spring创建Connection
public class ConnectionFactoryBean implements FactoryBean<Connection> {
@Override
public Connection getObject() throws Exception {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://localhost:3306/express","root", "root");
}
@Override
public Class<?> getObjectType() {
return Connection.class;
}
@Override
public boolean isSingleton() {
return false;
}
}

2. 配置

<!-- 配置复杂对象的创建 -->
<bean id="calendar" class="factoryBean.CalendarFactoryBean"></bean>
<bean id="connection" class="factoryBean.ConnectionFactoryBean"></bean>

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄