TEL:400-8793-956
当前位置:开发工具

如何使用spring生成接口的代理对象并使其可注入?

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-16 08:28:23

 问:我有一个界面

 
interface MyInterface {
    @MyAnnotation
    void myMethod();
}
该接口尚未实现,我不想一一编写实现。
我们想使用spring的技术来动态生成。
然后另一个类注入接口
 
class Test {
    @Autowired MyInterface proxy;
    
    public void test() {
        proxy.myMethod();
    }
}
如何实现和配置呢?
 
Spring数据JPA是以这种方式实现的,但是我不理解源代码。我希望提供一个简单的实现
 
我在下面编写了一个实现,但是需要由代理实现的每个接口都需要手动编写一个create bean方法。
有没有一种方法可以直接扫描包和注释并自动创建bean,例如spring data JPA?
 
 
答:我自己做了一个实现
 
@Configuration
public class MyInterfaceImplFactory {
    
    @Bean
    public MyInterface getMyInterface() {
        return getProxy(MyInterface.class);
    }
    
    <T> T getProxy(Class<T> clazz) {
        return (T) Proxy.newProxyInstance(ProxyImpl.class.getClassLoader(), new Class<?>[] {clazz}, new ProxyImpl());
    }
    
    class ProxyImpl implements InvocationHandler {
        
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            MyAnnotation myAnnotation = methdo.getAnnotation(MyAnnotation.class);
            // do something
            return null;
        }
    }
}
但是,为此,您必须为要由代理实现的每个接口编写一个create bean方法。
有没有一种方法可以直接扫描包和注释并自动创建bean,例如spring data JPA?
 
可以通过BeanFactoryPostProcessor在春季动态添加豆子
上一篇: 刷新页面间隔出现412
下一篇: Chrome插件无法在离线页面上运行(文件:/ / *)?如何启动插件?
城市网站导航:无锡网站建设 徐州企业网站定制 常州网站开发哪家好 苏州网站改版 南通网站开发 连云港网站建设 淮安网站建设公司 盐城网站定制 扬州网站改版公司 镇江网站开发 泰州高端网站制作 宿迁高端网站开发 江阴高端网站开发 宜兴建设网站 新沂建设网站 邳州建设网站 常熟建设网站 张家港网站改版 昆山公司网站开发 太仓高端网站制作 丹阳高端网站制作 句容专业建站 泰兴网站制作公司 合肥网站建设 芜湖网站制作 蚌埠网站建设 淮南网站制作哪家好 马鞍山网站建设 铜陵网站制作公司 安庆网站建设公司 黄山网站制作 滁州网站建设 阜阳网站设计 六安网站建设 亳州网站制作 宣城网站建设 巢湖网站建设哪家好 桐城网站制作 天长网站建设 明光网站建设 全椒网站建设 扬中网站建设公司 城市小程序导航: