Spring创建复杂对象

Spring创建复杂对象

何为复杂对象?

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

复杂对象(如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>
原文地址:https://www.cnblogs.com/lkldeblog/p/10685833.html