factorybean的解释
来源:互联网 发布:黑客网络hacknet攻略 编辑:程序博客网 时间:2024/06/06 15:51
介绍:
一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean 。在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量的配置信息,配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案。Spring为此提供了一个org.Springframework.bean.factory.FactoryBean的工厂类接口,用户可以通过实现该接口定制实例化bean的逻辑。
FactoryBean接口对于Spring框架来说占有重要的地位,Spring 自身就提供了70多个FactoryBean的实现。它们隐藏了实例化一些复杂bean的细节,给上层应用带来了便利。从Spring 3.0 开始, FactoryBean开始支持泛型,即接口声明改为FactoryBean<T> 的形式
实现factorybean 接口 主要有3个方法如下;
package com.quartz.job;import org.springframework.beans.factory.FactoryBean;public class JobFactoryBean implements FactoryBean<MyJob>{@Overridepublic MyJob getObject() throws Exception {// TODO 实际factorybean 返回的值return null;}@Overridepublic Class<?> getObjectType() {// TODO 返回值的classreturn MyJob.class;}@Overridepublic boolean isSingleton() {// TODO 指定是否单列 默认是falsereturn true;}}当我们使用spring 容器 获取时比如使用注解
@Autowired JobFacotryBean jobFacoryBean 获取时 我们获取到的是JobFacotryBean的实例 因为@Autowired 是按照类型来获取的
使用@Resource 注解
@Resource JobFacotryBean jobFacoryBean 这样的写法是不正确的 应为这时我们获取的是MyJob的实例应改为@Resource MyJob jobFacoryBean 不然会出现注入类型错误
如果我们想获取JobFacotryBean的实例需要是&符号和名字一起使用如下:
@Resource (name="&jobFacoryBean")
JobFacotryBean jobFacoryBean
这样获取的才是JobFacotryBean的实例
使用getBean的方式获取 也是一样 获取JobFacotryBean实例 getBean("&jobFacoryBean")
获取泛型的实例 就是本例子中的MyJob 使用getBean("jobFacoryBean")
factorybean 和beanfactory 是不一样的概念主要的前者代表着是一个bean 后者表示的是一个bean工厂
- factorybean的解释
- FactoryBean的工作方式
- 集合FactoryBean的配置
- spring的FactoryBean<T>
- FactoryBean的使用
- Spring的FactoryBean使用
- spring的FactoryBean
- FactoryBean的使用详解...
- Spring的FactoryBean详解
- spring 的 factoryBean
- FactoryBean的使用
- FactoryBean的理解
- Spring的FactoryBean接口
- FactoryBean
- Spring的FactoryBean与PropertyEditor
- spring的beanFactory和factoryBean
- BeanFactory与FactoryBean的YY
- spring的beanFactory和factoryBean
- 6
- 利用keras进行样本扩充
- 博弈游戏(Bash Nim wythoff)
- java并发编程--Executor框架
- python 三维坐标图
- factorybean的解释
- 多线程经典——生产者消费者问题(未加锁版)
- 按位与、或、异或等运算方法
- 笔记-2017.10.21
- A Simple Problem with Integers
- Java的对象序列化
- 多线程经典——生产者消费者问题(加锁版)
- PHP基础知识(1)
- BigNums—— 斐波那契 预处理(代码)