- 浏览: 35256 次
- 性别:
- 来自: 成都
最新评论
-
hzs0502030128:
好象不起作用
cxf、struts、spring中web.xml过滤url问题解决方案 -
ndsafhhlk:
方法一很渣,忽略。方法二,很好,我就是用的这个方法方法三,不起 ...
cxf、struts、spring中web.xml过滤url问题解决方案
applicationContext.xml
部分代码:
例子很简单,代码中记得放@Autowired,@Transactional,@Scope("prototype")...注解
entity配置和hibernate一样,一个javabean对应一个.hbm.xml
web.xml:
基本上就这样吧
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- 持久层配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/oa?useUnicode=true&characterEncoding=utf8"></property> <property name="user" value="root"></property> <property name="password" value="root"></property> <property name="maxPoolSize" value="40"></property> <property name="minPoolSize" value="1"></property> <property name="initialPoolSize" value="1"></property> <property name="maxIdleTime" value="180"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <!-- <prop key="hibernate.current_session_context_class">thread</prop>--> </props> </property> <property name="mappingLocations"> <list> <value>classpath:/com/gc/oa/entity/*.hbm.xml</value> </list> </property> </bean> <!-- end --> <!-- 事物配置 --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true" lazy-init="true"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="proxyTargetClass"> <value>false</value> </property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- end --> <!-- 使用spring annotation自动扫描配置 --> <context:component-scan base-package="com.gc.oa" /> <!-- 使用spring annotation自动事务配置--> <tx:annotation-driven transaction-manager="transactionManager" /> <!-- end --> </beans>
部分代码:
package com.gc.oa.dao.impl; import java.sql.SQLException; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.gc.oa.dao.BaseDao; import com.gc.oa.utils.Pagination; public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T>{ private Class clazz; public BaseDaoImpl(Class clazz) { this.clazz=clazz; } @Autowired protected void setSessionFactoryS(SessionFactory sessionFactory) { this.setSessionFactory(sessionFactory); } public void add(T t) throws Exception { this.getHibernateTemplate().save(t); } public void delete(T t) throws Exception { this.getHibernateTemplate().delete(t); } public void update(T t) throws Exception { this.getHibernateTemplate().update(t); } public Pagination findByPage(final String query,final int pageNum,final int pageSize) { return (Pagination)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { String queryStr="From "+clazz.getName(); if(query!=null&&!query.equals("")){ queryStr+=" Where "+query; } int count=session.createQuery(queryStr).list().size(); List list=session.createQuery(queryStr) .setFirstResult((pageNum-1)*pageSize) .setMaxResults(pageSize).list(); Pagination pagination=new Pagination(); pagination.setCountResult(count); pagination.setList(list); pagination.setCurPage(pageNum); pagination.setPageSize(pageSize); return pagination; } }); } public T findById(int id) { return (T)getHibernateTemplate().get(this.clazz, id); } @SuppressWarnings("unchecked") public List<T> query(final String str) throws Exception { return getHibernateTemplate().executeFind(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { return session.createQuery("From "+clazz.getName()+" where "+str).list(); } }); } public List<T> findAll() { return getHibernateTemplate().loadAll(clazz); } }
package com.gc.oa.dao.impl; import org.springframework.transaction.annotation.Transactional; import com.gc.oa.entity.Diary; @Repository public class DiaryDaoImpl extends BaseDaoImpl<Diary>{ public DiaryDaoImpl() { super(Diary.class); } @Transactional public void deleteById(int id) { Diary diary=super.findById(id); this.getHibernateTemplate().delete(diary); } }
package com.gc.oa.service.impl; import java.util.Date; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import com.gc.oa.dao.DiaryDao; import com.gc.oa.entity.Diary; import com.gc.oa.service.DiaryService; import com.gc.oa.utils.Pagination; @Service public class DiaryServiceImpl implements DiaryService { public static final Logger logger = Logger.getLogger(DiaryServiceImpl.class); @Autowired private DiaryDao DiaryServiceImpl; @Transactional public void add(Diary diary) { try { diary.setCreateTime(new Date()); DiaryServiceImpl.add(diary); } catch (Exception e) { logger.error("添加公告失败"); } } public Diary findById(int id) { Diary diary = null; try { diary= DiaryServiceImpl.findById(id); } catch (Exception e) { e.printStackTrace(); } return diary; } public Pagination findByPage(String query, int pageNum, int pageSize) throws Exception { return DiaryServiceImpl.findByPage(query, pageNum, pageSize); } @Transactional public void update(Diary diary) { try { Diary diary1=findById(diary.getId()); if(diary1!=null){ diary1.setTitle(diary.getTitle()); diary1.setUpdateTime(new Date()); diary1.setContent(diary.getContent()); diary1.setEmployer(diary.getEmployer()); DiaryServiceImpl.update(diary1); } } catch (Exception e) { logger.error("修改公告失败"); } } @Transactional public void deleteById(int id) { try { DiaryServiceImpl.deleteById(id); } catch (Exception e) { logger.error("删除公告失败"); } } }
package com.gc.oa.action; import org.apache.struts2.ServletActionContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import com.gc.oa.entity.Diary; import com.gc.oa.service.DiaryService; @Controller("diaryAction") @Scope("prototype") public class DiaryAction { private Diary diary; @Autowired private DiaryService diaryServiceImpl; public String add(Diary diary){ diaryServiceImpl.add(diary); return "addSuc"; } public String delete(Diary diary){ diaryServiceImpl.deleteById(Integer.valueOf(ServletActionContext.getRequest().getParameter("id"))); return "delSuc"; } public String update(Diary diary){ diaryServiceImpl.update(diary); return "updSuc"; } public Diary findById(int id){ id = Integer.valueOf(ServletActionContext.getRequest().getParameter("id")); diary=diaryServiceImpl.findById(id); return diary; } public Diary getDiary() { return diary; } public void setDiary(Diary diary) { this.diary = diary; } }
例子很简单,代码中记得放@Autowired,@Transactional,@Scope("prototype")...注解
entity配置和hibernate一样,一个javabean对应一个.hbm.xml
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:applicationContext.xml </param-value> </context-param> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <!-- spring2 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> <!-- 权限控制 --> <filter> <filter-name>privilegeController</filter-name> <filter-class>com.gc.oa.privilege.PrivilegeController</filter-class> </filter> <filter-mapping> <filter-name>privilegeController</filter-name> <url-pattern>/employer/*</url-pattern> </filter-mapping> <!-- open session in view配置 --> <filter> <filter-name>sessionFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 编码过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- struts2 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.do</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- <error-page> <error-code>403</error-code> <location>/403.html</location> </error-page> --> </web-app>
基本上就这样吧
发表评论
-
cxf、struts、spring中web.xml过滤url问题解决方案
2012-03-02 15:20 5828最近项目遇到webService配置cxf过滤器时与strut ... -
[转]hibernate查询缓存(Query Cache)
2012-02-15 15:43 910转:http://www.lordofthejars.com/ ... -
struts2文件上传下载
2011-10-13 16:09 11341.上传页面 *<form action="对 ... -
[转]hibernate延迟加载机制理解
2011-09-19 19:46 1220[转]http://www.sunxin.org/arti ... -
[转]hibernate3延迟加载
2011-09-19 19:18 1017转:百度文库[橙子果冻(343928972)] 延迟加载: 首 ... -
[转]spring依赖注入的3种方式
2011-09-12 19:14 999[转]http://www.pc6.com/infoview/ ... -
[转]Spring配置文件总结(二)
2011-09-12 18:43 9814.SSH: <?xml version="1 ... -
[转]Spring配置文件总结(一)
2011-09-12 18:33 866转:http://zhaohe162.blog.163.com ... -
[转]运行时异常与非运行时异常有什么区别
2011-09-12 18:14 983转:http://hi.baidu.com/a72981280 ... -
[转]hibernate.hbm2ddl.auto .
2011-09-05 12:28 1173转:http://blog.csdn.net/kjfcpua/ ... -
[转]spring事务原理
2011-09-05 11:56 1004转:http://blog.sina.com.cn/s/blo ... -
[转]鸭子-策略模式(Strategy)
2011-09-03 17:08 714转:http://www.cnblogs.com/justin ... -
[转]什么是游离状态
2011-09-03 16:28 926转:http://guocc.iteye.com/blog/6 ... -
[转]一种常用的权限控制算法的实现
2011-09-03 16:24 790转:http://pcedu.pconline.com.c ... -
[转]hibernate延迟加载的原理与实现
2011-09-03 16:20 733转:http://superleo.iteye.com/blo ... -
[转]Spring IoC与AOP的核心思想
2011-09-03 16:14 4739转:http://blog.sina.com.cn/s/blo ...
相关推荐
这个“Spring+hibernate整合源代码”应该包含了实现上述整合步骤的示例代码,可以作为学习和参考的资源。通过学习和实践这些代码,你可以更好地理解和掌握 Spring 和 Hibernate 整合的细节,提升你的 Java Web 开发...
- Spring提供了声明式事务管理,通过`@Transactional`注解可以轻松地在方法级别声明事务边界,简化事务管理代码。 - 另外,还可以使用编程式事务管理,通过TransactionTemplate或PlatformTransactionManager接口...
标题“Spring + JPA + Hibernate配置”涉及到的是Java开发中常用的三个框架——Spring、Java Persistence API (JPA) 和Hibernate的集成与配置。这是一份关于如何将这些框架结合使用的教程或参考资料,可能包含了实现...
标题 "spring+hibernate+webwork相关配置" 指的是一个集成开发环境的配置,其中涵盖了三个关键的技术框架:Spring、Hibernate和WebWork。这些框架在Java Web开发中非常常见,主要用于实现依赖注入、持久化管理和MVC...
6. **整合配置**:Spring 和 Hibernate 的整合需要在 Spring 的配置文件中配置 Hibernate 的 SessionFactory,并通过 DataSource 配置数据库连接。同时,还需要配置事务管理器,如 `PlatformTransactionManager`。 ...
3. Hibernate配置文件:设置数据库连接信息,实体类映射等。 4. 实体类:代表数据库中的表,使用Hibernate注解或XML映射文件进行ORM配置。 5. DAO(Data Access Object)层:实现对数据库的操作,通常会使用...
整合Hibernate时,我们需要配置Hibernate的sessionFactory,然后通过Spring的HibernateTemplate或SessionFactoryBean来访问数据库。 **整合步骤** 1. **配置环境**:确保JDK、Tomcat、Struts2、Spring和Hibernate库...
《Struts+Spring+Hibernate 整合开发.pdf》这本书可能是详细讲解这个主题的资源,它可能涵盖了从基础概念到实战案例的全面内容,对于想要深入理解和掌握这三大框架整合的开发者来说是一份宝贵的参考资料。...
2. **事务管理(Transaction Management)**:Spring提供了声明式事务管理,开发者只需在方法上添加@Transactional注解,Spring就会自动处理事务的开始、提交或回滚,提高了代码的可读性和可维护性。 3. **数据源...
Struts 与Spring整合时,可以通过Spring的Action代理,实现Action的依赖注入,进一步提高代码的可测试性和解耦。 2. **Spring框架**:Spring 提供了一个容器,用于管理应用对象的生命周期和依赖关系。它允许通过XML...
接下来,我们将深入探讨Spring整合Hibernate的相关知识点。 1. **Spring框架**:Spring是一个开源的Java平台,它提供了全面的应用程序开发模型,包括事务管理、数据访问集成、Web应用开发等。核心特性包括依赖注入...
5. **集成过程**:在整合CXF、Spring和Hibernate的过程中,通常需要配置Spring的XML上下文文件来声明服务接口、实现类、DAO和SessionFactory。此外,还需要设置CXF的服务器配置,指定服务的地址和实现类。在本示例中...
2. **Spring事务管理**:Spring的事务管理支持声明式和编程式两种方式,可以在服务调用过程中确保数据的一致性。修改版可能优化了事务边界设定,提升了事务处理性能,或者增强了事务回滚策略。 3. **Hibernate整合*...
在IT行业中,构建大型企业级应用时,常常会采用MVC(Model-...而提供的文件"A111]整合Struts + Spring + Hibernate续.exe"可能是一个关于这个整合过程的教程或者示例应用,"src"目录则包含了源代码,供开发者参考学习。
Spring与Hibernate的整合,可以实现声明式事务管理,而Spring与Struts的整合则可以通过Spring的Action代理实现AOP切面,如日志记录、权限验证等。 这份PDF教程将详细讲解这三个框架的安装、配置、基本用法以及它们...
整合过程中,可能涉及到的配置包括Struts2的Spring插件配置和Hibernate的SessionFactory注入。 5. **项目结构**:一个SSH项目通常会有如下的目录结构:`src/main/java`存放源代码,`src/main/resources`放置配置...
总的来说,"Struts+Spring+Hibernate 英文 API" 是一套完整的Java开发参考资料,对于熟悉和精通这些框架的开发者来说,是一份宝贵的资源。通过深入研究这些API,开发者不仅可以提升自己的技能,还能更好地适应和解决...
1. **事务管理**:Spring提供了一种统一的事务管理方式,可以在不同数据源上进行声明式或编程式事务控制,使得事务管理更加简单且健壮。 2. **对象持久化**:通过Spring的Hibernate模板或者JPA抽象层,开发者可以...
最后,我们将整合Hibernate作为ORM(对象关系映射)工具,它简化了与数据库的交互。 1. 引入Hibernate依赖:包括hibernate-core、hibernate-entitymanager等。 2. 配置Hibernate:在Spring配置文件中设置...