@Controller在外部jar中打包时无法正常工作

时间:2014-12-23 14:48:12

标签: java spring spring-mvc

我有一个spring web应用程序,它接收一个外部jar,其中包含packakge com.x.y.controller中的一些带注释的控制器。

我在spring-servlet.xml

中的组件扫描路径中包含了com.x.y.controller包
<context:component-scan base-package="com.x.y.controller" />.

但是当我将应用程序部署到我的本地tomcat服务器时,我的外部jar中的那些控制器bean不会被创建。

但是,当我构建应用程序时将jar提取到类路径中(意味着将我的包完全扩展到我的Web应用程序类路径中),一切似乎都运行良好。这对我来说似乎很奇怪,因为我们在外部jar中也有一些@component注释的服务类。而这些课似乎运作良好。

有人知道这是否是春天的预期行为?或者我错过了一些弹簧配置来找到那些控制器?

目前在开发过程中,如果我更改了一个类,即使该类在外部jar中,更改也会反映到tomcat而不进行重建。如果我需要提取jar以使这些控制器工作,那么即使重新启动服务器,tomcat似乎也没有对这些控制器进行更改。需要重建才能再次提取jar以使任何更改生效。这对于发展来说非常痛苦。春天我比较新。如果我必须采取这种方式,是否有人能够找到解决方案?

1 个答案:

答案 0 :(得分:1)

确保在类路径中存在external.jar(通过添加到maven依赖项,eclipse项目设置,使用-cp jvm命令行参数等),并且只需引用外部.jar中的类的包名称即可想要包括。

<context:annotation-config/>添加到spring-servlet.xml