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 没有正确渲染片段
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段