ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java-Spring 2.5托管servlet:如何?

2019-12-10 05:00:31  阅读:283  来源: 互联网

标签:dependency-injection servlets spring java


如果有什么问题请指正.

据我了解,所有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管理.

标签:dependency-injection,servlets,spring,java
来源: https://codeday.me/bug/20191210/2099483.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有