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>

 

相关文章:

  • 2018-09-20
  • 2021-07-15
  • 2021-10-12
  • 2021-07-27
  • 2022-02-12
  • 2021-08-13
  • 2022-12-23
  • 2021-09-16
猜你喜欢
  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2021-10-21
  • 2021-09-04
  • 2021-04-19
  • 2022-12-23
相关资源
相似解决方案