使用 Spring 容器管理 Servlet

本文介绍了如何将Servlet像Struts1/2的Action一样在Spring容器中管理,避免在代码中显式引用bean id。通过配置web.xml和Spring的applicationContext-service.xml,使Servlet能够依赖注入业务逻辑处理类,实现无侵入式的依赖管理。文中提供了一个具体的例子,包括Servlet的配置和代理类的使用,展示了如何在不改变Servlet本身的情况下,通过Spring实现Servlet的初始化和业务调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用 Spring 容器管理 Servlet

        Servlet 可否也能像 Struts1/2 的 action 那样作为一个 javaBean 在 Spring 容器里进行管理呢?答案是肯定的。
        自定义(继承自 javax.servlet.http.HttpServlet)的 Servlet 如何像 Struts1/2 中那样调用 Spring 容器的 service 呢?《Servlet 调用 Spring 容器的 service》一文很好地解决了这个问题。美中不足的是,ArcSyncDownloadServlet 在得到其注入的 bean 时,需要显式地写出 bean 在 Spring 配置中的 id 才可以:

	this.setOperationService((OperationService) wac.getBean("operationService"));//Spring 配置 中的 bean id   



        这样子违背了 Spring 依赖注入的思想。那么如何才可以不在代码中显式调用这个 bean id,而把 bean id 直接写在配置文件中呢?
        本文用一个项目中使用的例子介绍了将 Servlet 和业务对象的依赖关系使用 Spring 来管理,而不用再在 Servlet 中硬编码要引用对象的名字。
        仍然使用《Servlet 调用 Spring 容器的 service》一文中的例子。
        与《Servlet 调用 Spring 容器的 service》的做法相反,web.xml 和 Spring 的 application*.xml 配置需要改变,而 Servlet 不需要做改变。
        如同

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值