码迷,mamicode.com
首页 > 其他好文 > 详细

BeanFactoryPostProcessor进行bean的注入

时间:2021-03-15 11:27:52      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ini   frame   pos   stp   lis   nts   code   gen   beans   

BeanFactoryPostProcessor 自定义spring进行注入

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.stereotype.Component;

@Component
public class MyPostProcess implements BeanFactoryPostProcessor {
	public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
		GenericBeanDefinition beanDefinition = (GenericBeanDefinition) beanFactory.getBeanDefinition("userServiceImpl");
		//如果需要被注入的bean是接口的实现类,需要将spring默认的jdk代理改为cglib代理
		//因为jdk是代理的接口,cglib是根据具体的类来进行代理的
		beanDefinition.setBeanClass(UserServiceImpl2.class);
		
	}
}
 <aop:aspectj-autoproxy proxy-target-class="true"/>

如果使用默认的jdk代理,会抛出以下异常

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.simon.UserServiceImpl2‘ available

BeanFactoryPostProcessor进行bean的注入

标签:ini   frame   pos   stp   lis   nts   code   gen   beans   

原文地址:https://www.cnblogs.com/SimonHu1993/p/14530119.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!