struts2,hibernate5,spring4整合,以前没有遇到过,整整搞了一天了没找出原因,哪位大神帮帮忙:
页面Struts提示的错误信息如下:
spring的beans.xml里是这么配置的
<bean id="sessionfactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="packagesToScan">
<value>cn.itcast.oa.domain</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
<!-- org.hibernate.dialect.OracleDialect -->
org.hibernate.dialect.MySQL5Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="cache.use_query_cache">true</prop>
<prop key="cache.use_second_level_cache">true</prop>
<prop key="cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</prop>
</props>
</property>
</bean>
<bean id="txManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionfactory" />
</bean>
<tx:advice id="tad" transaction-manager="txManager">
<tx:attributes>
<tx:method name="find*" read-only="true" />
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* cn.itcast.oa.service.impl.*.*(..))" id="service1" />
<aop:advisor advice-ref="tad" pointcut-ref="service1" />
</aop:config>
<bean name="template" class="org.springframework.orm.hibernate5.HibernateTemplate">
<property name="sessionFactory" ref="sessionfactory">
</property>
</bean>
代码里的结构是HT类接受spring注入template,service基类(泛型类)继承HT并且实现DAOsupport接口(这个接口是泛型接口),service实现类继承service基类并且实现DAOsupport的子接口,具体代码如下:
HT类
public class HT {
private HibernateTemplate ht;
public HibernateTemplate getHt() {
return ht;
}
@Resource
public void setHt(HibernateTemplate ht) {
this.ht = ht;
}
}
DAOsupport接口如下
```public interface DAOSupport {
public void save(T t);
}
基类代码如下:
```public class DAOsupportImpl<T> extends HT implements DAOSupport<T> {
private Class<T> clazz;
public DAOsupportImpl() {
super();
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); // 获取当前new的对象的
// 泛型的父类
// 类型
clazz = (Class<T>) pt.getActualTypeArguments()[0]; // 获取第一个类型参数的真实类型
System.out.println("clazz ---> " + clazz);
}
@Override
public void save(T t) {
System.out.println("到dao"+t.getClass());
getHt().save(t);
}
public Class<T> getClazz() {
return clazz;
}
public void setClazz(Class<T> clazz) {
this.clazz = clazz;
}
}
service实现类代码如下
public class UserServiceImpl extends DAOsupportImpl<User> implements UserService {
}
action中的方法如下
``` public String save() {
//System.out.println("到action");
ActionContext.getContext().getApplication().remove("users");
this.userService.save(getModel());//model是user的一个实例
return "list";
}