package com.sz.register;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.beans.factory.support.GenericBeanDefinition;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import com.sz.test.TestService;
@Component
public class MyRegistryBean implements ApplicationContextAware,BeanDefinitionRegistryPostProcessor{
private ApplicationContext ctx;
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
}
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
// 需要被代理的接口
Class<?> cls = TestService.class;
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(cls);
GenericBeanDefinition definition = (GenericBeanDefinition) builder.getRawBeanDefinition();
definition.getPropertyValues().add("interfaceClass", definition.getBeanClassName());
definition.setBeanClass(MyProxyFactory.class);
definition.setAutowireMode(GenericBeanDefinition.AUTOWIRE_BY_TYPE);
// 注册bean名,一般为类名首字母小写
beanDefinitionRegistry.registerBeanDefinition("testService", definition);
}
@Override
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
this.ctx = ctx;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TestSpringProxy.zip (22个子文件)
TestSpringProxy
pom.xml 1KB
.springBeans 371B
target
test-classes
classes
META-INF
maven
org.springframework.samples
TestSpringProxy
pom.xml 1KB
pom.properties 311B
MANIFEST.MF 115B
com
sz
domain
Start.class 973B
test
TestService.class 157B
register
MyProxyFactory.class 1KB
MyProxy.class 1KB
MyRegistryBean.class 3KB
applicationContext.xml 904B
.settings
org.eclipse.m2e.core.prefs 86B
org.eclipse.core.resources.prefs 150B
org.eclipse.jdt.core.prefs 238B
src
test
java
main
resources
applicationContext.xml 904B
java
com
sz
domain
Start.java 559B
test
TestService.java 83B
register
MyProxyFactory.java 605B
MyProxy.java 511B
MyRegistryBean.java 2KB
.project 746B
.classpath 1KB
共 22 条
- 1
资源评论
祈雨v
- 粉丝: 285
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功