Struts + Spring + Hibernate搭建

来源:互联网 发布:科比王力宏恶搞软件 编辑:程序博客网 时间:2024/06/05 11:22

1. 使用的三大框架的版本:

struts-2.3.16.1

spring-framework-4.0.2.RELEASE-dist

hibernate-release-4.3.4.Final


2. Hibernate的annotation支持需要下载 hibernate annotation package:hibernate-annotations-3.4.0.GA


3.基本必须的jar包

Struts:


Hibernate: 标红的是会和Struts中的会产生冲突的包


Spring:



Struts与Spring集成还需要: struts2-spring-plugin-2.3.16.1.jar 

以及各种与数据库连接的包。


4. Struts的配置

1.在web.xml中配置Struts的过滤器 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter, 如下:

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

2. 添加struts.xml 文件

1.若需要Spring辅助管理struts的action,则在struts.xml中添加配置:

<constant name="struts.objectFactory" value="spring"></constant>

then,将Action作为bean配置在Spring的配置文件中,在struts中的配置action是,class属性使用Spring文件中的bean id

<action name="login" class="loginAction">

5. Spring的配置:

在web.xml中添加Spring的监听器:

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- Context Configuration locations for Spring XML files -->
<!-- 配置Spring的配置文件的路劲--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param>

添加 applicationContext.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"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 若是c3p0等数据源,可配置 destroy-method="close"在bean中--><bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="dbc:mysql://localhost:3306/austin" /><property name="username" value="root" /><property name="password" value="root" /></bean><bean id="mySessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="myDataSource" /><!-- 自动扫描注解方式配置的hibernate类文件 --><property name="packagesToScan"><list><value>com.austin.sshedemo.model.test</value></list></property><!-- 自动扫描hbm方式配置的hibernate文件和.hbm文件 --><!-- <property name="mappingDirectoryLocations"><list><value>classpath:sy/hbm</value></list></property> --><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQLDialect</value></property></bean><!-- service bean--><bean id="loginService" class="com.austin.sshedemo.service.impl.LoginBusiness" />
<!-- Action bean--><bean id="loginAction" class="com.austin.sshedemo.action.LoginAction"><property name="loginService"><ref bean="loginService" /></property></bean></beans>


5.Hibernate的配置

在Hibernate与Spring的集成中,需要添加 spring-orm-4.0.2.RELEASE.jar与spring-tx-4.0.2.RELEASE.jar,并配置与使用Hibernate对应版本的sessionFactory class,如:

org.springframework.orm.hibernate4.LocalSessionFactoryBean

1. 一般将数据库的datasource和sessionFactory作为bean交由Spring管理,配置如上applicationContext.xml

2. 在dao中使用sessionfactory实例,只需添加 sessionfactory属以及setter/getter 方法

public class LoginDaoImpl implements LoginDao{private SessionFactory sessionFactory;@Overridepublic TestModel create(TestModel testModel){//Session session = sessionFactory.getCurrentSession();Session session = sessionFactory.openSession();int n = (Integer) session.save(testModel);testModel.setId(n);session.close();return testModel;}public SessionFactory getSessionFactory(){return sessionFactory;}public void setSessionFactory(SessionFactory sessionFactory){this.sessionFactory = sessionFactory;}}


0 0
原创粉丝点击