加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 从不同模块自动装配bean

发布时间:2020-12-15 01:30:52 所属栏目:大数据 来源:网络整理
导读:我有一个很大的应用程序,我想分解成可管理的模块.我使用spring和Jpa(Hibernate作为提供者).我想出了一个结构,其中我有一个包含所有实体和dao类的核心模块,其他模块使用核心模块来实现持久性,并且每个模块都有自己的一组服务类和控制器. 所有Jpa和spring配置

我有一个很大的应用程序,我想分解成可管理的模块.我使用spring和Jpa(Hibernate作为提供者).我想出了一个结构,其中我有一个包含所有实体和dao类的核心模块,其他模块使用核心模块来实现持久性,并且每个模块都有自己的一组服务类和控制器.

所有Jpa和spring配置文件都在核心模块中.通过这种设置,我面临着在使用核心模块的模块中自动装配dao bean的问题.所以我的问题是,是否可以从其他模块中的核心模块自动装配bean(或者可能使用跨模块的上下文)?如果有更好的方法,我也愿意接受有关结构的建议.

谢谢

最佳答案
核心模块必须是必须在每个子上下文模块中设置的父Spring上下文.通过这种方式,没有自动装配的问题

每个子上下文都可以从父级到达所有bean,但要注意父级无法看到子级

根据您配置应用程序的方式,您可以通过多种方式执行此操作,即:即

>将核心模块分配到每个模块的独立jar中,如本文第Sharing a spring context across multiple Webapps条所述
>以编程方式,在每个子模块中都有您的核心spring xml,您可以这样做:

ClassPathXmlApplicationContext parentAppContext = new ClassPathXmlApplicationContext();
parentAppContext.setConfigLocation("spring-core.xml"); // this is your core spring xml
parentAppContext.refresh();
ClassPathXmlApplicationContext moduleAppContext = new ClassPathXmlApplicationContext();
moduleAppContext.setConfigLocation("others.xml");
moduleAppContext.setParent(parentAppContext);
moduleAppContext.refresh();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读