微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-Spring 2.5托管servlet:如何?

如果有什么问题请指正.

据我了解,所有Spring功能,即DI都在通过bean时起作用

Spring Context,即getBean()方法.

否则,即使我的方法标记为@Transactional,也没有任何效果,我将

使用新的运算符创建拥有类,将不会提供任何交易管理.

我将Tomcat 6用作servlet容器.

所以,我的问题是:如何使Spring框架管理Servlet方法.

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

基本的Java Servlet,因此它们具有更多方法.尽管如此,web.xml仍然像往常一样存在于应用程序中.

事实是,我不控制servlet的创建流程,只能覆盖一些方法

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

使用图形用户界面.

因此,基本上,我只向每个Servlet的一些方法添加一些代码.

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

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

对博佐的评论

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐