`
凤凤陈
  • 浏览: 19258 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

struts,spring,hibernate的配置

阅读更多
1、创建名为SSHOper的Web工程

在src下面创建:

com.ssh.util--存放公共的工具类,即公用型的工具方法

com.ssh.userinfo.dao--存放数据访问的接口

com.ssh.userinfo.daoimp--存放数据访问接口的实现方法

com.ssh.userinfo.web--存放struts类,转发器

com.ssh.userinfo.model--存放持久化实体对象,实体关系映射

WebRoot下面创建:

page--jsp页面

script--JS代码,JS集合类

images--图片,多媒体文件

css--样式表

注意:创建好上面的目录结构后,在Debug模式下面验证工程的有效性

2、确认目录结构没有问题

(1)、在工程中通过IDE工具添加Struts的框架支持。

右键项目名称---Myeclipse---Add Struts Capabilities---2.1版本,选择后缀名为*.action,表示后缀

名为.action的url请求都会被核心类捕获给Struts---只选择Struts 2 Core Libraries核心库。

(2)、通过IDE工具查看工程,新增加一个库文件,新增加一个struts.xml文件,并且修改了web.xml文件的内
容。

<!-- 加入struts框架后新增加的转发器,凡是捕获到以.action为后缀的url路径都交给struts2的类StrutsPrepareAndExecuteFilter,然后在struts.xml文件中查找文件 -->
 
<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>*.action</url-pattern>
</filter-mapping>

注意:加入struts架包后,验证工程的有效性。

3、在工程中导入spring架包

注意:暂时不引入JDO、IBATIS、TOPLink Essentials 、OpenJPA Libraries这四个架包。

注意:applicationContext.xml中的架包的版本必须和引入的一致,不然会报错。

(1)、applicationContext.xml文件,是核心文件、核心容器,提供工厂模式的实现,可以根据情况单独引

入各自的xml文件,现在这个项目暂时只需要一个applicationContext.xml文件来控制和管理工厂。相当于一

个办公室,统一管理、统一运作的表现方式。

(2)、使spring框架能够正常的工作还需要在web.xml文件中进行如下的配置

<!-- 配置Spring支持文件,注入支持文件 -->

<!-- 告诉Spring的编码格式,UTF-8可以正确解析中文。告诉spring这个黄牛党我要去的正确位置 -->
<filter>
<filter-name>Spring character encoding filter</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>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 核心容器的入口。告诉工人应该进入哪一个门。页面进入哪一个配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/app*.xml</param-value>
</context-param>

<!-- 添加监听器。让工厂监听工人 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

当配置好后,重启服务,当出现 "信息: Initializing Spring root WebApplicationContext"时代表注

入文件成功。

4、创建数据源

在MyEclipse Database Exporer试图中,右键,new Database Connection Driver

(1)、Driver templae : 源类型,驱动连接的模版,选择MySQL Connector/J

(2)、Driver name :mysql 数据源的名称,连接的名称

(3)、Connection URL : jdbc:mysql://192.168.1.111:3306/sshdb 数据库的路径

注意:主机路径:192.168.1.111:3306  数据库的名称:sshdb

(4)、User name : 用户名

(5)、Password :密码

(6)、Add JARs 添加Mysql支持架包 mysql-connector-java-5.1.7-bin.jar

(7)、Driver classname : com.mysql.jdbc.Driver

注意:com.mysql.jdbc.Driver的前身是org.gjt.mm.mysql.Driver,现在一般使用前者,不过后者具有更好的兼容性。

点击下一步:next

(8)、Schema Details (选择连接的数据库) 选择Display all schemas

5、在工程中导入Hibernate架包

(1)、选择Hibernate3.3版本

(2)、选择全部架包,将架包复制到工程目录下面

点击下一步:next

(3)、选择Spring configuration file(applicationContext.xml)

点击下一步:next

(4)、选择:修改已经存在的配置文件 Existing Spring configuration file

点击下一步:next

(5)、选择上面新建的数据源:mysql

点击下一步:next

(6)、不创建会话工厂

下面是加入Hibernate后,applicationContext.xml文件中新增加的内容

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://192.168.1.111:3306/sshdb">
</property>
<property name="username" value="root"></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>
</props>
</property>
</bean>

6、创建实体关系映射


在MyEclipse Database Exporer试图中,右键表的名称,选择Hibernate Reverse Engineering

(1)、Java package 选择在model层创建
(2)、Create POJO<>DB Table mapping information 项中选择 Create a Hibernate mapping file for each database table 选择 Update Hibernate configuration with mapping

resource location
(3)、Java Data Object (POJO <> DB Table) 不选择Create abstract class
点击下一步:next
(4)、只改变Id Generator 为 native
点击下一步:next
(5)、选中表,改变Id Generator 为 native
完成

完成后,applicationContext.xml文件中新增加的内容
<!-- 加入了映射文件 -->
<property name="mappingResources">
<list>
<value>com/ssh/userinfo/model/Userinfo.hbm.xml</value>
</list>
</property>

7、在applicationContext.xml中增加事务的功能。

<!-- 事务定义 -->

<!--
定义仓库的管理者为sessionFactroy,别名为
transactionManager,它是spring委派到Hibernate中去工作的,要遵循Hibernate中的规则
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />  <!-- local是加入的本地bean文件,在此处引入的是上面定义的spring中的sessionFactory -->
</property>
</bean>

<!-- 创建事务代理对象 -->

<!--
通过Spring为我们在Hibernate工作的管理员和与管理员打交道的客户办理会员卡,确定规则限制。同时告知会员违反和超出服务范围会发生的情况
-->
<bean id="interceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>  <!-- 查一下事务传播行为类型:除了PROPAGATTON_REQUIRED,还有哪些 -->
</props>
</property>
</bean>

<!-- 自动事务代理,所有需要事务的bean的名称在这里定义 -->

<!--
发放或 向目标用户宣传会员机制,邀请用户(*Dao)加入到会员机制当中来,
用户通过interceptorNames来创建,自愿=自动事务代理加入
-->
<bean id="autocreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Dao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>interceptor</value>
</list>
</property>
</bean>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics