Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
2021-07-16 04:06
标签:别名 工厂 依赖 bug class 2.x junit 自己 title BeanFactory,以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂。在Spring中,BeanFactory是IOC容器的核心接口,它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。 Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是常用的一个,该实现将以XML方式描述组成应用的对象及对象间的依赖关系。XmlBeanFactory类将持有此XML配置元数据,并用它来构建一个完全可配置的系统或应用。 实例化容器 基本就是这些了,接着使用getBean(String beanName)方法就可以取得bean的实例;BeanFactory提供的方法及其简单,仅提供了六种方法供客户调用: 以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean 例如自己实现一个FactoryBean,功能:用来代理一个对象,对该对象的所有方法做一个拦截,在调用前后都输出一行LOG,模仿ProxyFactoryBean的功能。
3 * 代理一个类,拦截该类的所有方法,在方法的调用前后进行日志的输出
4 * @author daniel.zhao
5 *
6 */
7 public class MyFactoryBean implements FactoryBean XML-Bean配置如下 Junit Test class 其实FactoryBean这栋特点,可以实现很多有用的功能,实现大家多多评论多多补充,一起探讨。 Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法 标签:别名 工厂 依赖 bug class 2.x junit 自己 title 原文地址:https://www.cnblogs.com/daxiong225/p/9534991.html1. BeanFactory
1 Resource resource = new FileSystemResource("beans.xml");
2 BeanFactory factory = new XmlBeanFactory(resource);
1 ClassPathResource resource = new ClassPathResource("beans.xml");
2 BeanFactory factory = new XmlBeanFactory(resource);
1 ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml", "applicationContext-part2.xml"});
3 BeanFactory factory = (BeanFactory) context;
2. FactoryBean
1 /**
2 * my factory bean
1
1 @RunWith(JUnit4ClassRunner.class)
2 @ContextConfiguration(classes = { MyFactoryBeanConfig.class })
3 public class MyFactoryBeanTest {
4
5 @Autowired
6 private ApplicationContext context;
7
8 /**
9 * 测试验证FactoryBean原理,代理一个servcie在调用其方法的前后,打印日志亦可作其他处理
10 * 从ApplicationContext中获取自定义的FactoryBean
11 * context.getBean(String beanName) ---> 最终获取到的Object是FactoryBean.getObejct(),
12 * 使用Proxy.newInstance生成service的代理类
13 */
14 @Test
15 public void testFactoryBean() {
16 HelloWorldService helloWorldService = (HelloWorldService) context.getBean("fbHelloWorldService");
17 helloWorldService.getBeanName();
18 helloWorldService.sayHello();
19 }
20 }
文章标题:Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法
文章链接:http://soscw.com/index.php/essay/105875.html