1 spring 有俩ing中类型bean 一种是工厂bean FactoryBean
2: 普通bean和工厂bean得区别
普通Bean:在配置文件中定义bean类型就是返回类型;工厂bean:在配置文件中定义bean类型可以和返回类型不一样;
(1) 创建类 让这个类作为工厂bean 实现接口FactoryBean
(2) 实现接口中得方法 在实现得方法中定义返回得bean类型
package com.factorybean; import com.spring.collectiontype.Course; import org.springframework.beans.factory.FactoryBean; public class MyBean implements FactoryBean<Course> { //定义返回bean @Override public Course getObject() throws Exception { Course course = new Course(); course.setCname("abc"); return course; } @Override public Class<?> getObjectType() { return null; } @Override public boolean isSingleton() { return false; } }
配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myBean" class="com.factorybean.MyBean"></bean> </beans>
测试代码:
public void testCollection3(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml"); Course myBean = context.getBean("myBean",Course.class); System.out.println(myBean); }