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>
莫等闲,白了少年头,空悲切