繁体   English   中英

从不同的模块自动装配bean

[英]Autowiring beans from a different module

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

在此输入图像描述

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

谢谢

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

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

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

  1. 将核心模块分配到单独的jar中,分配给每个模块,如本文所述, 跨多个Web应用程序共享弹出上下文
  2. 以编程方式,在每个子模块中拥有核心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(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM