Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring框架-与旧Java webapp的集成_Java_Spring_Jakarta Ee - Fatal编程技术网

Spring框架-与旧Java webapp的集成

Spring框架-与旧Java webapp的集成,java,spring,jakarta-ee,Java,Spring,Jakarta Ee,我正在开发一个已有10年历史的JavaWebApp,我想在这个项目中引入一些新技术。我想开始做的事情之一是依赖注入。我知道Spring框架有能力进行依赖注入,但我很难将框架集成到旧项目中 有人能举一个例子,说明我需要在web.xml中更改哪些内容、需要添加的其他文件以及需要进行的其他更改吗?我想要最小的Spring内存占用,同时仍然可以执行依赖项注入 网上有很多关于使用Spring启动新项目的例子,但我找不到任何关于将Spring集成到旧项目中的例子 谢谢。您必须首先在web.xml中添加一个上

我正在开发一个已有10年历史的JavaWebApp,我想在这个项目中引入一些新技术。我想开始做的事情之一是依赖注入。我知道Spring框架有能力进行依赖注入,但我很难将框架集成到旧项目中

有人能举一个例子,说明我需要在web.xml中更改哪些内容、需要添加的其他文件以及需要进行的其他更改吗?我想要最小的Spring内存占用,同时仍然可以执行依赖项注入

网上有很多关于使用Spring启动新项目的例子,但我找不到任何关于将Spring集成到旧项目中的例子


谢谢。

您必须首先在web.xml中添加一个上下文加载程序侦听器,以及Spring配置xml文件的位置

您应该将Spring
DispatcherServlet
配置为接受您希望它处理的所有URL

您应该编写控制器来绑定和验证HTTP请求,调用服务,将数据添加到
ModelAndView
进行渲染,并根据需要将JSP映射到成功/失败视图

您应该将接口放在服务层和持久性层的前面。将实现移动到Spring可以注入的实现类中


根据需要利用Spring AOP实现安全性、事务和日志记录。

您必须首先在web.xml中添加一个上下文加载程序侦听器,以及Spring配置xml文件的位置

您应该将Spring
DispatcherServlet
配置为接受您希望它处理的所有URL

您应该编写控制器来绑定和验证HTTP请求,调用服务,将数据添加到
ModelAndView
进行渲染,并根据需要将JSP映射到成功/失败视图

您应该将接口放在服务层和持久性层的前面。将实现移动到Spring可以注入的实现类中


根据需要利用Spring AOP实现安全、事务和日志记录。

在项目中使用新技术不会使项目更快\更好,除非您将新技术引入项目的所有部分。DI背后的思想是丢失对象之间的依赖关系。该项目可能是紧密耦合的,因此您必须至少重写部分内容。根据规模的不同,这可能是一个需要打败的怪物——问问自己这是否值得,除了引进新技术,它是否对项目有任何积极影响


关于将DI容器集成到旧项目中的教程很少甚至没有,原因很简单:它通常没有任何意义。要么在所有位置使用该模式,要么根本不使用。将两者混合在一起创造的私生子将是一个可怕的东西。我真的建议您考虑一下为什么要在这个10年的项目中引入DI容器。除非有很好的理由这样做(而且你很乐意重写大量代码),否则不要这样做。

在项目中使用新技术不会使项目更快更好,除非你将新技术引入项目的所有部分。DI背后的思想是丢失对象之间的依赖关系。该项目可能是紧密耦合的,因此您必须至少重写部分内容。根据规模的不同,这可能是一个需要打败的怪物——问问自己这是否值得,除了引进新技术,它是否对项目有任何积极影响


关于将DI容器集成到旧项目中的教程很少甚至没有,原因很简单:它通常没有任何意义。要么在所有位置使用该模式,要么根本不使用。将两者混合在一起创造的私生子将是一个可怕的东西。我真的建议您考虑一下为什么要在这个10年的项目中引入DI容器。除非有很好的理由这样做(而且你很乐意重写大量代码),否则不要这样做。

我不同意这一点:这不是为了让应用程序更快;这是关于以这样一种方式构建它,使它在未来变得更好。根据我的经验,Spring特别擅长在不要求重写应用程序的部分内容的情况下进行重写。我真的不认为这样做有什么意义。基本上,您将有两个并行运行的应用程序,它们恰好共享一些代码/数据。现在想象一个只在项目的DI端工作的开发人员,现在需要在另一端修复一些东西,并假设它也是DI。如果你认为DI的使用会使应用程序的结构变得更好,那么花点时间重构它。逻辑不会改变,所以它应该能够以快速的方式完成。这是一个旧的web应用程序。它可能分层不好;这可能很难测试和扩展。这样做有很多原因。当然,当重构后的应用程序完成并被证明与旧应用程序相匹配时,你会退出旧应用程序;这是关于以这样一种方式构建它,使它在未来变得更好。根据我的经验,Spring特别擅长在不要求重写应用程序的部分内容的情况下进行重写。我真的不认为这样做有什么意义。基本上,您将有两个并行运行的应用程序,它们恰好共享一些代码/数据。现在想象一个只在项目的DI端工作的开发人员,现在需要在另一端修复一些东西,并假设它也是DI。如果你认为DI的使用会使应用程序的结构变得更好,那么花点时间重构它。逻辑不会改变,所以它应该能够以快速的方式完成。这是一个旧的web应用程序。它可能分层不好;这可能很难测试和扩展。那里