`

Spring对Servlet注入Dao或Service

 
阅读更多

 

当想在Servlet中注入Dao时,使用spring容器注入时,发现在Servlet类里注入的到的值为null, 导致无法使用dao类型。通过查了资料发现原因是:

 

在spring的自动注入中普通的POJO类都可以使用@Autowired进行自动注入,但是除了两类:Filter和Servlet无法使用自动注入属性。(因为这两个归tomcat容器管理)可以用init(集承自HttpServlet后重写init方法)方法中实例化对象,

servlet是动态网页项目区别于普通的java项目的,是动态网页项目中web.xml主要配置文件管理的,而spring只能管理普通的pojo,而没办法直接注入,尽管你的注入方式和配置方式都没有问题。其实filter也是会遇到类似问题的。

 

public void init(ServletConfig config) throws ServletException {

super.init(config);

WebApplicationContext  applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());

UserDao = (UserDao )applicationContext.getBean("userDao");

   logger.info("初始化web服务信息成功...");

}

除了可以用WebApplicationContext获取之外,用ClassPathXmlApplicationContext来获取也是可以的。

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplication("配置文件路径字符串");

xxxService接口 = ctx.getBean("id的字符串",XxxService接口.class); 

 

 

分享到:
评论

相关推荐

    Servlet使用MVC模式(Dao\Service\Servlet)增删查改

    在这个名为"Servlet使用MVC模式(Dao\Service\Servlet)增删查改"的小程序中,我们将深入探讨如何利用这些组件来实现对MySQL数据库的操作。 **模型(Model)** 模型层是应用程序的核心,负责处理业务逻辑和数据访问...

    JSP 开发之servlet中调用注入spring管理的dao

    当我们在Servlet中调用Spring管理的DAO时,会遇到一个问题:Servlet并不是由Spring容器直接管理的,因此在Servlet中不能直接使用依赖注入的方式来获取DAO的实例。为了解决这一问题,可以采用以下技术方案。 首先,...

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    本文将深入探讨如何使用jsp-servlet-service-dao四层架构来实现这样的系统,包括用户信息的增删改查功能,以及权限控制机制。 首先,让我们理解这四层架构的每一层: 1. **JSP(JavaServer Pages)**:JSP是Java ...

    特殊情况(ActionForm,Servlet, Filter, Listener)下Spring如何注入对象

    对于Servlet、Filter和Listener,由于它们通常在Web应用启动时由容器实例化,而非由Spring管理,所以也不能直接使用@Autowired注解或其他常规的注入方式。为了解决这个问题,可以使用以下策略: 1. **Servlet**: ...

    springMVC基本配置(Controller+Service+Dao)

    服务类通常会注入DAO层,以便与数据库交互。例如: ```java @Service public class UserService { @Autowired private UserDao userDao; // 自动注入DAO public User getUserById(int id) { return userDao...

    jsp+ajax+servlet+jdbc案例

    通过这个案例,开发者可以深入理解JSP、AJAX、Servlet和JDBC之间的协同工作原理,为后续学习更高级的Web框架如Spring MVC或Struts打下坚实基础。同时,这也是一个实际操作的练习,帮助开发者提高动手能力和问题解决...

    Spring mvc + Spring + Spring jdbc 整合 demo

    Service层的接口和实现类可以使用Spring的依赖注入来注入DAO。 4. **DAO层**:DAO(Data Access Object)层负责与数据库的交互,通常使用Spring JDBC的Template类来执行SQL查询。这里可以找到与特定表操作相关的...

    spring jar 包详解

    `spring-jms.jar`为Java Messaging Service(JMS)提供了支持,使得Spring应用能够轻松地发送和接收消息。 以上只是Spring框架中部分核心JAR包的概述,每个JAR包都承载着特定的功能和职责。开发者在实际项目中,应...

    基于Spring+MyBatis+Servlet整合的人员信息管理系统.zip

    - **Service层**:定义业务逻辑,使用Spring的依赖注入获取DAO层的实例。 - **DAO层**:通过MyBatis的SqlSession执行SQL操作,与数据库交互。 - **Model层**:表示数据实体,与数据库表结构相对应。 - **视图层**:...

    org.springframework.web.servlet-3.1.0.RELEASE.jar.zip

    《Spring Web MVC框架详解——基于org.springframework.web.servlet-3.1.0.RELEASE.jar》 在Java Web开发领域,Spring框架无疑是最具影响力的框架之一,其中Spring Web MVC是其核心组件,专注于处理Web请求和响应。...

    Spring3.3学习案例

    Spring的DI(Dependency Injection)特性使得Service层可以通过@Autowired注解注入DAO层,实现业务逻辑与数据访问的解耦。 4. Controller层处理 SpringMVC的Controller接收HTTP请求,调用Service层的方法,处理...

    基于Spring和Mybatis和servlet的人员信息管理系统.zip

    4. 设计Service层,封装业务逻辑,如添加员工、查询所有员工、按条件查询等,通过@Autowired注入DAO层实现数据操作。 5. 创建Servlet,处理HTTP请求,根据请求类型调用相应的方法,如GET请求用于显示信息,POST请求...

    struts1.3+spring3.0+hibernate3.3简单项目示例

    4. 在Action中注入Service,Service中注入DAO,通过DAO进行数据库操作。 5. 测试项目,确保请求能正确路由,业务逻辑正确执行,数据库操作无误。 这个简单的SSH项目示例为初学者提供了一个很好的起点,通过实际操作...

    spring-demo

    Spring的依赖注入(DI)特性使得Service对象可以轻松地注入DAO(数据访问对象),从而与数据存储进行交互。Service层是应用的核心,包含业务逻辑,可以处理复杂的业务规则和流程。 4. **Web项目结构**: 一个典型...

    springmvc+spring+hibernate

    10. **测试与部署**:编写JUnit测试用例,对Controller、Service、DAO层进行单元测试。测试无误后,将项目打包成WAR文件,部署到Tomcat服务器上运行。 通过上述步骤,我们完成了Spring MVC、Spring、Hibernate的...

    ssm例子一直报错userDao无法注入

    4. **Spring MVC配置**:在Spring MVC配置文件(如`servlet-context.xml`)中,确保MVC注解驱动配置正确,以便Spring可以识别和处理注解。 ```xml ``` 5. **MyBatis配置**:检查MyBatis的配置文件(如`mybatis-...

    Spring mvc、 Spring、 Spring jdbc 整合实例源码

    服务层通常会注入DAO,通过Spring的DI功能实现。 5. **数据访问层(DAO)**:处理数据库操作,通常使用Spring JDBC或JPA(Java Persistence API)来实现。Spring JDBC通过JdbcTemplate或NamedParameterJdbcTemplate...

    spring 与 spring mvc 整合 配置讨论

    10. **测试**:Spring提供了JUnit支持,可以方便地对Service和Controller进行单元测试,确保代码质量。 以上就是Spring与Spring MVC整合配置的一些基础知识,实际应用中还需要考虑安全性、性能优化等因素。通过不断...

    Spring3mvc和hibernate整合示例代码.zip

    4. **创建 DAO 和 Service**:DAO(数据访问对象)层负责与数据库进行交互,通常继承自 HibernateTemplate 或实现 HibernateDaoSupport。Service 层则封装了业务逻辑,调用 DAO 方法来完成数据的增删改查。 5. **...

    基于Servlet+Spring+Mybatis的客户关系管理系统.zip

    在Spring框架下,Service层的类通常被声明为Spring的Bean,以利用其依赖注入特性。 7. **JDBC和数据库连接池**:尽管Mybatis负责SQL执行,但仍然需要JDBC来建立数据库连接。为了提高性能和资源利用率,项目中通常会...

Global site tag (gtag.js) - Google Analytics