严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.lj.service.IUserService com.lj.controller.UserController.userService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void com.lj.dao.UserDao.setSessionFactory(org.hibernate.SessionFactory); nested exception is java.lang.NoClassDefFoundError: Lorg/hibernate/cache/CacheProvider;
在启动的时候,会报出一堆这样的错误。 所有我们使用Annotation的注入都会被报错。
出现这个错误的原因是Spring对sessionFactory的管理。
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
这里我们使用了hibernate3.LocalSessionFactoryBean,
但是这个类是不支持对Annotation进行管理的。
也就是说我们没有使用mapping文件比如User.xml文件来进行映射的管理。
这里的解决方法有两种,
1: orm.hibernate3.LocalSessionFactoryBean改成orm.hibernate3.annotation.AnnotationSessionFactoryBean,
后者支持hibernate通过Annotation管理映射。
2: 改成orm.hibernate4.LocalSessionFactoryBean.
这里貌似要使用hibernate4才可以。
总之如果容器启动就看到一堆初始化错误,注入异常的信息,很可能就是这个原因了。
分享到:
相关推荐
UserDAO JAVA
<bean id="userDao" class="my.aop.dao.UserDaoJdbcImpl" scope="singleton"> <property name="dataSource" ref="dataSource"></property> </bean> <bean id="myService" class="my.aop.dao.MyService"> ...
UserDAO.class
<property name="userDao" ref="userDao"/> </bean> <bean id="userDao" class="com.example.UserDao"/> ``` 或 ```java @Service public class UserService { @Autowired private UserDao userDao; } ``` 接...
在上面的例子中,@Autowired注解将UserDao类型的唯一一个bean装配到userDao这个成员变量或setter方法中。 1.2 让@Autowired工作起来 为了使@Autowired能够工作,我们需要在配置文件中加入以下代码: Java 代码: `...
区别是:第一种实现中,Spring 会直接将 UserDao 类型的唯一一个 bean 赋值给 userDao 这个成员变量;第二种实现中,Spring 会将 userDao 这个成员变量的 setter 方法与 userDao bean 进行绑定。 2. @Autowired ...
(1)定义接口:UserDao、TopicDao (2)声明接口的方法 UserDao:查找用户、增加用户、修改用户 TopicDao:查找主题、增加主题、修改主题、删除主题 实现思路及关键代码 (1)定义接口UserDao (2)声明UserDao...
<property name="userDao" ref="userDao"/> </bean> ``` 这里,`userService` Bean的`userDao`属性将被`userDao` Bean注入。 接下来是构造器注入。这种方式是在创建对象时就提供其依赖,通过传递构造函数参数来...
<property name="username" value="张三" /> </bean> ``` 为了使Spring能够进行XML装配,Bean类需要满足一些条件,如提供无参构造器,为需要注入的属性提供setter方法等。 **基于注解的装配** 随着Java注解的...
其中,`userManager` Bean 依赖于 `userDao4OracleImpl` Bean,这种依赖关系将被 IOC 容器所管理。 三、依赖注入 在 Spring 框架中,依赖注入是指 IOC 容器将一个 Bean 的依赖关系注入到另一个 Bean 中的过程。...
1. **配置文件错误**:检查Spring的配置文件(如`applicationContext.xml`或`beans.xml`),确保`UserDao`接口的实现类已经被正确地定义为bean,并且设置了正确的扫描路径。例如: ```xml <bean id="userDao" class...
<property name="userDao" ref="userDao"/> </bean> <bean id="userDao" class="com.example.UserDao"/> ``` 在上面的例子中,`userService` bean的`userDao`属性将被`userDao` bean的实例注入。 此外,Spring还...
<property name="userDao" ref="userDao"/> </bean> ``` 这里,`userDAOConfig` Bean 的 `userDao` 属性通过 `ref` 属性引用了 `userDao` Bean。 二、构造函数方式 如果我们希望在创建Bean时就完成依赖注入,...
假设存在多个 `UserDAO` 的 Bean 实例,可以通过 `@Qualifier` 来指定具体的 Bean 实例: ```java @Autowired public void setUserDao(@Qualifier("userDao") UserDAO userDao) { this.userDao = userDao; } ``` ...
在这里,`userService` bean的`userDao`属性通过`setter`方法被`userDao` bean注入。`name`属性对应于setter方法参数的字段名,`ref`属性引用了需要注入的bean的ID。 ### 二、setter注入的优点与缺点 **优点:** 1...
<property name="userDao" ref="userDao"/> </bean> <bean id="userDao" class="com.example.UserDaoImpl"/> ``` `spring-dao.xml`则是数据访问对象(DAO)的配置文件,主要用于配置数据源、事务管理和SQL映射...
UserDao1.java
运行工具后,会根据表结构生成对应的BEAN类(如UserBean、OrderBean等)和DAO接口及实现(如UserDAO、OrderDAO等)。 生成的BEAN类通常包括如下内容: - 类名:基于数据库表名,遵循驼峰命名法。 - 属性:与表的...
<property name="userDao" ref="userDao"/> </bean> ``` 3. **接口注入** 接口注入在Spring中较少使用,主要是通过实现特定的接口,由Spring提供实现该接口的方法来注入依赖。这种方式对类的侵入性较大,但可以...
在这个例子中,`saveUser`方法接收一个`User`类型的参数,`@ModelAttribute("user")`告诉Spring MVC将请求参数绑定到`User`对象上,"user"是表单提交时的bean名称,应与HTML表单中的`name`属性匹配。 接着,Spring ...