`
king_tt
  • 浏览: 2123716 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Servlet 调用 Spring 容器的 service

 
阅读更多
自定义(继承自 javax.servlet.http.HttpServlet)的 Servlet 如何像 Struts1/2 中那样调用 Spring 容器的 service 呢?
如同 Struts1/2 的配置一样,Spring 在 web.xml 中的配置及其 application*.xml 配置不变:
web.xml 中:

  1. <listener>
  2. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  3. </listener>

  1. <context-param>
  2. <param-name>contextConfigLocation</param-name>
  3. <param-value>/WEB-INF/applicationContext*.xml</param-value>
  4. </context-param>



applicationContext-service.xml 中:


  1. <beanid="operationService"
  2. class="com.defonds.cds.service.operation.impl.OperationServiceImpl"scope="singleton">
  3. </bean>



如同一般的 Servlet 的配置一样,Servlet 在 web.xml 中的配置不变:


  1. <servlet>
  2. <servlet-name>downloadServlet</servlet-name>
  3. <servlet-class>com.defonds.cds.common.ArcSyncDownloadServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>downloadServlet</servlet-name>
  7. <url-pattern>/file</url-pattern>
  8. </servlet-mapping>



如同一般的 Struts1/2 的 action 一样注入 service:


  1. privateOperationServiceoperationService=null;
  2. publicOperationServicegetOperationService(){
  3. returnoperationService;
  4. }
  5. publicvoidsetOperationService(OperationServiceoperationService){
  6. this.operationService=operationService;
  7. }



在 Servlet 中如同一般的Struts1/2 的 action 一样调用 service:


  1. FileInfofileInfo=this.getOperationService().getFileByFidAndSecret(Long.parseLong(fileId),secret);



唯一需要修改的是 Servlet 的 init 方法:


  1. publicvoidinit(ServletConfigconfig)throwsServletException{
  2. super.init(config);
  3. ServletContextservletContext=this.getServletContext();
  4. WebApplicationContextwac=null;
  5. wac=WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
  6. this.setOperationService((OperationService)wac.getBean("operationService"));//Spring配置中的beanid
  7. }

分享到:
评论

相关推荐

    Spring.html

    Spring IOC 控制反转:把创建对象的权利交给Spring 创建对象 1.... 2.... 3.... BeanFactory:使用这个工厂创建对象的方式都...在Servlet中使用WebApplicationContextUtils获取容器对象 5.使用容器对象去获取Service对象

    Spring.3.x企业应用开发实战(完整版).part2

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    Spring中文帮助文档

    12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的...

    Spring API

    12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的...

    spring security 参考手册中文版

    28.2.2 Java EE容器认证 220 29. LDAP认证 220 29.1概述 220 29.2在Spring Security中使用LDAP 221 29.3配置LDAP服务器 221 29.3.1使用嵌入式测试服务器 222 29.3.2使用绑定认证 222 29.3.3加载权限 223 29.4实现类 ...

    ssh(structs,spring,hibernate)框架中的上传下载

    Struts+Spring+Hibernate实现上传下载    本文将围绕SSH文件上传下载的主题,向您详细讲述如何开发基于SSH的Web程序。SSH各框架的均为当前最新版本:  •Struts 1.2  •Spring 1.2.5  •Hibernate 3.0  本文...

    SpringMVC源码分析.md

    每次一个Http请求访问,那么对应URL的Servlet就会调用service方法处理。 其实这里我是对SpringMVC的一个复习,所以我先说说就我目前SpringMVC的理解吧。 大家都知道SpringMVC是一个MVC框架,但它还是脱离不了Tomcat,...

    springboot学习思维笔记.xmind

    SpringEL和资源调用 注入普通字符 注入操作系统属性 注入表达式云算结果 注入其他Bean的属性 注入文件内容 注入网址内容 注入属性文件 Bean的初始化和销毁 Java配置方式 注解方式 ...

    Spring3.x企业应用开发实战(完整版) part1

    4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...

    Spring Security 中文教程.pdf

    18.2.2. J2EE容器认证 19. LDAP认证 19.1. 综述 19.2. 在Spring Security里使用LDAP 19.3. 配置LDAP服务器 19.3.1. 使用嵌入测试服务器 19.3.2. 使用绑定认证 19.3.3. 读取授权 19.4. 实现类 ...

    springboot-web.zip

    拦截器可以获取IOC容器中的各个bean,而过滤器就不行,因为拦截器是spring提供并管理的,spring的功能可以被拦截器使用,在拦截器里注入一个service,可以调用业务逻辑。而过滤器是JavaEE标准,只需依赖servlet api ...

    Spring Security-3.0.1中文官方文档(翻译版)

    18.2.2. J2EE 容器认证 19. LDAP 认证 19.1. 综述 19.2. 在Spring Security 里使用LDAP 19.3. 配置LDAP 服务器 19.3.1. 使用嵌入测试服务器 19.3.2. 使用绑定认证 19.3.3. 读取授权 19.4. 实现类 ...

    SpringSecurity 3.0.1.RELEASE.CHM

    17.2.2. J2EE容器认证 18. LDAP认证 18.1. 综述 18.2. 在Spring Security里使用LDAP 18.3. 配置LDAP服务器 18.3.1. 使用嵌入测试服务器 18.3.2. 使用绑定认证 18.3.3. 读取授权 18.4. 实现类 18.4.1. ...

    Spring、SpringMVC和Mybatis框架整合包

    但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    FactoryInstance 的 lookup() 方法被调用,在 SpringFactoryInstance 中,首先查找 Spring 容器,然后,通过 Bean 的 ID 查找 Bean,最终,FlexService 接口的实例被返回。 注意到 destination 的 id 并没有写死在...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    FactoryInstance 的 lookup() 方法被调用,在 SpringFactoryInstance 中,首先查找 Spring 容器,然后,通过 Bean 的 ID 查找 Bean,最终,FlexService 接口的实例被返回。 注意到 destination 的 id 并没有写死在...

    Spring MVC中的DispatcherServlet的使用

    Servlet 生命周期(容器管理) 1. 实例化 – 构造器  默认第一访问,可配置程序启动就初始化 2. 初始化 – init() 3. 运行 – service() 根据 HTTP 请求方法分发到一下方法中: doGet() doPost() ...

    java web技术开发大全(最全最新)

    JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean...

    Java课程设计-java web 网上商城,后台商品管理(前后端源码+数据库+文档) .zip

    搭建开发环境,包括安装JDK、配置Servlet容器(如Tomcat)、配置数据库(如MySQL)等。 创建一个Maven项目,添加所需的依赖库。 数据库设计与创建: 根据设计好的数据库模型,在数据库中创建相应的表结构。 后端...

    java面试题

    答:servlet实例化时调用init方法,得到请求时调用service方法,service方法自动派遣doget或dopost方法,最后当实例销毁时调用destroy方法。 error和exception有什么区别? 答:error是指错误,通常程序员不能通过...

Global site tag (gtag.js) - Google Analytics