本文主要是介绍Spring中的FactoryBean及Mybatis中Mapper生成原理解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
##一、Spring中的FactoryBean
首先,让我们先来看一看FactoryBean接口的定义,由此可见,FactoryBean也是用来创建bean的,它所创建的bean即为它后面所跟泛型对应的类型的实例。
package org.springframework.beans.factory;public abstract interface FactoryBean<T> {public abstract T getObject() throws Exception;public abstract Class<?> getObjectType();public abstract boolean isSingleton();
}
其中,getObject()方法返回创建的对象,getObjectType()方法返回创建的对象的类型,isSingleton()方法表示此对象是否为单例。
举个例子来看一下:
(1)User.java
先定义一个对象,此对象即为我们即将要实现的FactoryBean要创建的对象。
package com.alan.spring.extensionpoints;public class User {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "name: "+name+", age: "+age;}
}
(2)UserFactoryBean.java
创建上述对象的FactoryBean,实现了FactoryBean、InitializingBean、DisposableBean接口,其中InitializingBean接口主要是为了在UserFactoryBean的初始化方法afterPropertiesSet()中创建User的实例,DisposableBean接口主要与InitializingBean接口配对,并打印销毁日志。
package com.alan.spring.extensionpoints;import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;public class UserFactoryBean implements FactoryBean<User>, InitializingBean, DisposableBean{private User user;@Overridepublic void destroy() throws Exception {System.err.println("user factory
这篇关于Spring中的FactoryBean及Mybatis中Mapper生成原理解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!