首先来个类
public class Role {
private String sentence;
public void setSentence(String sentence) {
this.sentence = sentence;
}
public void shuchu(){
System.out.println(sentence);
}
}
目标:创建Role类,并且输出所需的Sentence,
然后构造Role的工厂类,实现FactoryBean接口,并且在这个类中填写我们要输入的Sentence
这个例子的关键点上表名 ---- 工厂类的辅助功能 我们要在工厂类中实际输入我要输入的语句
然后完成我们的工厂类
public class RoleFactory implements FactoryBean<String> {
private String sentence;
public void setSentence(String sentence) {
this.sentence = sentence;
}
@Override
public String getObject() throws Exception {
return sentence ;
}
@Override
public Class<?> getObjectType() {
return null;
}
}
请注意 FactoryBean<String>这个泛型要填写我们实际要返回的值
然后我们要配置一下RoleFactory的bean
<bean id="RoleFactoryBean" class="com.chenchen.dao.RoleFactory" >
<property name="sentence" value="04.24,和Sakura去东京天空树,世界上最暖和的地方在天空树的顶上"></property>
</bean>
简单的set注入,注入值
然后写Role的bean
<bean id="RoelBean" class="com.chenchen.dao.Role"> <property name="sentence" ref="RoleFactoryBean"></property> </bean>
也是set注入,外部bean的set注入。
请注意,这里的Role的bean写法与普通外部‘bean’没有什么区别,我们可以一直通过这种方式返回需要的类型,set注入需要的类型。
放过运行结果图
而且更重要的是 Test代码一点也不需要改变
public class TEST { @Test public void RoleTest(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml"); Role role = applicationContext.getBean("RoelBean",Role.class); role.shuchu(); System.out.println(role); } }