五IOC操作Bean管理(FactoryBean)
Posted 上善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五IOC操作Bean管理(FactoryBean)相关的知识,希望对你有一定的参考价值。
五、IOC操作Bean管理(FactoryBean)
-
Spring有两种类型bean,一种普通bean,另外一种工厂bean(FactoryBean)
-
普通bean:在配置文件中定义bean类型就是返回类型
-
工厂bean:在配置文件中定义bean类型可以和返回类型不一样
第一步 创建类,让这个类作为工厂bean,实现接口FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的bean类型
package com.deewinkg.bean; public class Course { private String cname; public void setCname(String cname) { this.cname = cname; } @Override public String toString() { return "Course{" + "cname='" + cname + '\\'' + '}'; } }
package com.deewinkg.bean; 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.deewinkg.bean.MyBean"></bean> </beans>
package com.deewinkg.test; import com.deewinkg.bean.Course; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MyTest { @org.junit.Test public void test1() { // 1.加载spring的配置文件 ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml"); // 2.获取配置,创建对象 Course course = context.getBean("myBean", Course.class); System.out.println(course); } }
运行结果:
以上是关于五IOC操作Bean管理(FactoryBean)的主要内容,如果未能解决你的问题,请参考以下文章
Spring5学习笔记 — “工厂Bean(FactoryBean)”