Spring创建复杂对象

Posted 乘着风破万浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 

以上是关于Spring创建复杂对象的主要内容,如果未能解决你的问题,请参考以下文章

阿里四面:你知道Spring AOP创建Proxy的过程吗?

Spring boot:thymeleaf 没有正确渲染片段

Spring总结————spring核心Core

Spring1()

SpringInAction读书笔记--第2章装配Bean

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段