Spring配置 - 多模块Maven项目

时间:2014-01-07 17:07:25

标签: spring

我有一个很棒的网络应用程序。作为优化代码的一部分,我将它们分成三个模块。

Module 1 : Web
Module 2 : driver module
Module 3 : Reporting module

这里的模块1&模块3是弹簧项目,其中模块2当前是纯Java模块。

我想通过模块2访问模块3(在春天)。

应用程序上下文xmls存在于模块1和模块3中。(例如m1.xml和m3.xml)

我已将m1.xml中的m3.xml包含为

<import resource="classpath*:m3.xml" />

在第2单元中,我试图在模块3中引入自动装配引用。但是第一次使用自动装配字段会抛出空指针异常。

在组件扫描中,我添加了基本包,以便能够识别该类。

任何人都可以指导我如何重写模块2来解决这个问题(ApplicationContext xml?等)

我正在使用spring 3.1

1 个答案:

答案 0 :(得分:1)

我想出了这个问题!

实际上来自Module-1(webapp),我正在调用驱动程序模块,并从那里调用报告模块。

问题是从驱动程序到报告,我正在使用引用(新的Report())进行调用,因此这些不再由spring容器管理。通常,弹簧容器管理的对象只能自动连接。默认情况下,new()创建的类中的Autowired引用不会自动装配。

问题可以通过两种方式解决

http://seniorjava.wordpress.com/2013/04/03/spring-configurable-magic/(春天 - @Configurable)

OR

http://sujitpal.blogspot.in/2007/03/accessing-spring-beans-from-legacy-code.html(通过静态方法共享应用程序上下文。这对单元测试有副作用。)