Spring中的FactoryBean及Mybatis中Mapper生成原理解析

本文解析了Spring中的FactoryBean接口及其使用示例,详细解释了FactoryBean如何创建对象并返回。同时,文章深入探讨了Mybatis中Mapper的生成原理,通过MapperFactoryBean的源码分析,揭示了如何将配置的Mapper接口转换为实际的Mapper实例。在理解这两部分内容的基础上,有助于更好地理解和应用Spring与Mybatis的整合。
摘要由CSDN通过智能技术生成

##一、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;
	}
	
	@Override
	public 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;
	
	@Override
	public void destroy() throws Exception {
		System.err.println("u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值