如何用Spring生成接口的代理对象并使之可以被注入?
我有一个接口
interface MyInterface {
@MyAnnotation
void myMethod();
}
这个接口没有实现,也不想一个个写实现。
实现想用spring下的技术动态生成。
然后有另一个类注入了这个接口
class Test {
@Autowired MyInterface proxy;
public void test() {
proxy.myMethod();
}
}
请问这样子应该如何实现和配置?
Spring Data JPA 就是这样实现的,但我没看懂源码,希望能提供简单的实现
我自己写了个实现在下面,但每个需要代理实现的接口都得手动写一个create bean方法。
有没有像Spring Data JPA那样直接扫描某个包和注解自动创建bean的办法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我自己作了一个实现
但这样做必须每一个要代理实现的接口都得写一个create bean方法。
有没有像Spring Data JPA那样直接扫描某个包和注解自动创建bean的办法?
可以通过
BeanFactoryPostProcessor
来在spring中动态添加bean用一个类继承接口,便于初始化,然后用aop技术,自动生成那个基本类的代理,这样既可以用xml配置,也可以用注解配置,符合你的要求吗?
@Autowired 不是动态实现
实现还是要你自己实现