问题描述
我正在使用一个已有10年历史的Java Webapp,我想在项目中引入一些新技术。 我想开始做的一件事是依赖注入。 我知道Spring框架具有进行依赖注入的能力,但是我很难将框架集成到旧项目中。
有人可以提供一个示例,说明我必须在web.xml中进行哪些更改,必须添加其他文件以及进行其他更改吗? 我想要最小的Spring占用空间,同时仍然可以打包进行依赖项注入。
在线上有很多关于使用Spring 启动新项目的示例,但是我找不到关于将 Spring 集成到旧项目中的任何示例。
谢谢。
1楼
首先,必须在Web.xml中添加上下文加载器侦听器以及Spring配置XML文件的位置。
您应该将Spring DispatcherServlet
配置为接受您希望其处理的所有URL。
您应该编写Controller来绑定和验证HTTP请求,调用服务,将数据添加到ModelAndView
以进行呈现,以及根据需要将JSP映射到成功/失败视图。
您应该将接口置于服务和持久性层的前面。 将实现移动到Spring可以注入的实现类中。
根据需要利用Spring AOP进行安全性和事务处理和日志记录。
2楼
除非您将新技术引入项目的所有部分,否则在项目上投入新技术不会使其更快,更好。 DI背后的想法是失去对象之间的依赖关系。 该项目可能紧密耦合,因此您必须至少重写部分内容。 根据规模的不同,这可能是一个巨大的挑战-问自己是否值得,是否对项目产生了积极影响,而不是引入新技术。
关于将DI容器集成到旧项目中的教程很少甚至没有的原因很简单:通常没有任何意义。 您可以在所有地方使用该模式,或者根本不使用。 通过混合两者而产生的那个混蛋,会让人感到恐惧。 我真的建议您考虑一下为什么要将DI容器引入该10年项目中。 除非确实有充分的理由这样做(并且您对重写大量代码感到满意),否则不要这样做。