gpt4 book ai didi

java - Spring 2.5 托管 servlet : howto?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:05 25 4
gpt4 key购买 nike

如有不妥请指正

据我所知,所有 Spring 功能,即 DI 在 bean 被获取时工作

Spring Context,即getBean()方法。

否则,即使我的方法被标记为@Transactional,也无法工作

用一个新的运算符创建所属类,将不提供事务管理。


我使用 Tomcat 6 作为 servlet 容器。

所以,我的问题是:如何让 Servlet 方法由 Spring 框架管理。

这里的问题是我使用了一个框架,它的servlet扩展了

的功能

基本的java Servlets,所以他们有更多的方法。尽管如此,web.xml 仍然像往常一样存在于应用程序中。

问题是我不控制servlets的创建流程,我只能覆盖几个方法

每个servlet的流程基本上都写在一些xml文件里,但是我控制这个过程

使用图形化图形用户界面。

所以,基本上,我只在每个 Servlet 的几个方法中添加一些代码。

如何让Spring框架管理这些方法?我需要做的基本事情是

使这些方法具有事务性 (@Transactional)。



对博卓的评论:<我>@Bozho让我们看看。
在这些 servlet 的方法中,我使用框架功能,比方说在当前 session 中获取和保存的特殊变量。
所需的是循环遍历那些基于框架的集合,同时将一些值保存在数据库中。
您的建议是引入一个新的非常复杂的对象,以便将其传递给服务层。 (服务层对框架一无所知,它的类和对象保存在当前 session 中!
首先,我们将基于框架的集合“包装”到这样的对象中,因此将所有内容复制到其中。
然后,服务层方法应该要么将更改保存在数据库中,要么更糟的情况是返回一个新的复杂对象,以便 Servlet 框架方法可以根据服务层方法执行的结果更新框架变量。
它是一种解决方法,但您认为这是个好主意吗?

最佳答案

您还可以直接在 Spring 应用程序上下文中定义您的 servlet。您需要在 web.xml 中注册一个“代理”servlet,并委托(delegate)给在 applicationContext.xml 中配置为 bean 的 servlet 实例。代理 servlet 配置有目标 servlet bean 的名称,它通过 WebApplicationContextUtils.getRequiredWebApplicationContext().getBean(...) 发现这个 bean,并将所有处理委托(delegate)给目标 servlet。在这种情况下,您的 servlet 实例完全由 Spring 管理。

关于java - Spring 2.5 托管 servlet : howto?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2635406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com