Struts1.3+Spring4.0+Hibernate4.3.5框架搭建
来源:互联网 发布:如何得网游数据库信息 编辑:程序博客网 时间:2024/04/29 14:20
大部分实验室的项目采用的框架版本太旧了。这次,我尝试着自己搭建一个最简单的SSH架构,所用的版本都是现在最新的。搭建之前,看了一下别人的介绍的流程,照着做还是运行不通,可能是版本的问题吧。
毫无疑问,首先是下载相关的包了,当然去官网了,没的说,挑最新的下。不过那样就带了一个问题:包冲突。因为每个框架要想独立运行,都会包含一些必要的工具组件,如common-log.jar、log4j.jar,要是不同的框架所包括的工具组件的版本不一样,自然就冲突了。我已经把SSH架构所需的包上传上去,全部是官网下载,解决了包冲突问题。下载地址:http://download.csdn.net/detail/u013361010/7979729
首先要在项目配置文件中配置好struts和Spring,以便在项目启动的时候加载这些框架的配置文件,如下所示:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>熟悉SSH架构的人都应该知道,其中Struts和Hibernate是相互独立的框架,他们被Spring这个框架容器统一管理着,也就是所要将Struts和Hibernate交给Spring管理。为把Struts交给Spring管理,如下图所示:
<action-mapping <action path="/modify"input="/index.jsp"name="addForm" type="org.news.action.AddAction" ><forward name="success" path="/index.jsp"/> </action></action-mappings><controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
其中Controller标签的配置就是将Struts交给Spring管理,看下Spring的配置文件applicationContext.xml就知道:
<bean name="/modify" class="org.news.action.AddAction"> <property name="service" ref="service"/></bean>这样,当浏览器要求请求“/modify.do”时,所要执行的的Action便是“
<span style="font-size:24px;">org.news.action.AddAction”而且其属性service会被自动注入。</span>再看Spring是如何管理Hibernate的
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="jdbcUrl" value="jdbc:sqlserver://localhost:2996;databaseName=newsDemo"/> <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="user" value="sa"/> <property name="password" value="sa"/> </bean> <!-- 数据源配置end --> <!-- sessionFatory配置 begin --> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>org.news.form.LoginForm</value> <value>org.news.form.AddForm</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop> </props> </property> </bean>
这里要提醒注意就是hibernate.current_session_context_class这个属性的配置,再不能像单独运行Hibernate一样配置成thread。
OK,到此为止SSH的配置已经完了,下面讲几点此版本的SSH和低版本的区别。首先最大的区别是session的获取,不再是通过sessionFactory.openSession()方法。这个方法为每次操作创建一个session,而且不会自动关闭,必须手动进行进行关闭,相当麻烦。在此版本中会话的获取采用session.getCurrentSession(),比如当一个线程创建了一个session,而且还没有关闭,那么其他线程要使用session时,就会使用该线程的session,而不会再单独创建。另外这样获取的session在使用完之后会自动关闭,开发者不用担心。另外,此版的SSH必须注解配置和XML配值都采用org.springframework.orm.hibernate4.LocalSessionFactoryBean类,不做区分。最后最重要的一点是,此版本的SSH中必须做事务管理,否则回报:org.hibernate.HibernateException: No Session found for current thread。异常。具体事务管理我会在其他的博文中详细介绍。
- Struts1.3+Spring4.0+Hibernate4.3.5框架搭建
- Spring MVC框架搭建(spring4.0+hibernate4.3)
- Spring MVC框架搭建(spring4.0+hibernate4.3)
- 解析如何搭建Struts2+Hibernate4+Spring4框架
- 手动搭建SSH框架Struts2+Spring4+Hibernate4
- SSH框架搭建实例--Spring4+Struts2+Hibernate4搭建
- springmvc4+spring4+hibernate4搭建
- 搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)
- 搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)
- 搭建SSH三大框架WEB项目过程(Struts2.3+Hibernate4.3+Spring4.1)
- 基于全注解的SpringMVC+Spring4.2+hibernate4.3框架搭建
- 基于全注解的SpringMVC+Spring4.2+hibernate4.3框架搭建
- SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一个前后端web网站(3)
- 使用spring4和hibernate4搭建一个springmvc的框架
- Spring4+Hibernate4+junit4环境搭建
- Struts2+Spring4+Hibernate4环境搭建
- SpringMVC4+Spring4+Hibernate4框架整合
- SpringMVC4+Spring4+Hibernate4框架整合
- OpenCV相关资源ubuntu安装
- 测试
- 指针被delete之后应该赋值NULL
- 小白书55页水题的小技巧
- Hadoop中控制Map的数量
- Struts1.3+Spring4.0+Hibernate4.3.5框架搭建
- 折纸
- 〖Android〗sshd for android, 及映射根文件系统至本地盘符
- <无聊>构造奇数次幻方
- GetBookInfoByCIP
- .NET进阶 — Nhibernate 持久化的三种状态
- spring 注解机制和XML配置机制之间的比较
- 全排列算法
- ZOJ 2110 Tempter of the Bone