spring、struct、hibernate三大框架整合

一、运用环境:

         Myeclipsejdk1.70Tomcat7.0mysql

二、整合思路:

        1.Action交给Spring来管理。

        2.SessionFactory交给Spring来管理。

        3.Session打开与关闭交给Spring来管理。

        4.把事务打提,提交、回滚交给Spring来管理。

三、整合: 

      1、创建web project,名为SSH。并新建一个名为ressource folder,用于存放配置文件。

          spring、struct、hibernate三大框架整合_第1张图片

 

        2、将hibernate引人项目

             (1)将Hibernate的jar导入项目(这里用的是hibernate3.5.6)

   spring、struct、hibernate三大框架整合_第2张图片

                       注:其中log4j-1.2.9jarslf4j-log4j12-1.5.10.jarmysql-connector-java-5.17.bin.jar是额外包(前两个用于做日志,后一个用于连接数据库)

 

            (2)将配置文件hibernate.cfg.xml引入项目的res 目录下(可在hibernate3.5.6中找到)

                   spring、struct、hibernate三大框架整合_第3张图片

    

            (3)测试

                    新建数据库ssh,并在src中建一个名为testpackage;新创建一个名为Test的类。Test类的代码如下:

                    spring、struct、hibernate三大框架整合_第4张图片

                    运行Test类,控制台中如果输出类似如下的语句,则表明测试成功。

                          org.hibernate.impl.SessionFactoryImpl@1649b44

 

           4)引人实体映射文件 hbm.xml -->@Entity(用户表为例)

                   a、建一个名为entitypackage,并新建一实体类user,有idname属性

                        spring、struct、hibernate三大框架整合_第5张图片

                 b、在entity包下引人映射文件User.hbm.xml(可在hibernate3.5.6中找到) 

                      spring、struct、hibernate三大框架整合_第6张图片

               c、在hibernate.cfg.xml中引人实体映射文件User.hbm.xml。

                   

       (5)测试

              运行Test类,如果数据库出现user表,则表示测试成功

               spring、struct、hibernate三大框架整合_第7张图片

              向数据库插入数据测试:在src下建一个名为entitypackage,并新建一名为UserDao的类

                   spring、struct、hibernate三大框架整合_第8张图片

                  在类Test中进入如下编码

                  spring、struct、hibernate三大框架整合_第9张图片

                 运行Test,并查询数据库,如果数据库内容如下,则hibernate引人成功。

             spring、struct、hibernate三大框架整合_第10张图片

 

     3、将Struts2引入项目         

          (1)将Struts2的jar导入项目(这里用的是Struts2.3.14)

                 spring、struct、hibernate三大框架整合_第11张图片

          (2)配置web.xml,在里面添加Struts2过滤器

                  spring、struct、hibernate三大框架整合_第12张图片

           (3)把struts.xml引入项目中

                   spring、struct、hibernate三大框架整合_第13张图片

          (4)编写用户登陆的Action来测试 

                  在src下建一个名为action的package,并新建一名为UserAction的类

                    spring、struct、hibernate三大框架整合_第14张图片

                  新建login.jsp页面,中内容如下: 

                   spring、struct、hibernate三大框架整合_第15张图片

                  配置struts.xml

                  spring、struct、hibernate三大框架整合_第16张图片

                 启动tomcat,打开浏览器输入http://localhost:8080/SSH/login.jsp,点击登录后如果能跳到index.jsp页面,并且控制台输出“测试成功(login方法中的输出语句)”  则导入struct成功。

 

     4、将Spring引入项目

         (1)将Spring的jar导入项目(这里用的是Spring3.2.0)

                   spring、struct、hibernate三大框架整合_第17张图片

           注:其中commons-logging-1.1.1.jar是从struct2中得到的

         (2)引入applicationContext.xml(官方文档可找到)

                    spring、struct、hibernate三大框架整合_第18张图片

         (3)测试spring ioc:依赖注入

                 在test下创建SpringBean类

                 spring、struct、hibernate三大框架整合_第19张图片

                 将SpringBean配置到applicationContext.xml中,并给msg注值“注入”

                 spring、struct、hibernate三大框架整合_第20张图片

                 修改Test的代码

                spring、struct、hibernate三大框架整合_第21张图片

               运行Test,如果控制台有“注入”输出,则表明引人spring成功

 

       5、spring与struts2整合:核心接管struts2里面的action类

           (1)引入整合包(在struts2中找)

                   

           (2).在web.xml中,配置监听器

                     spring、struct、hibernate三大框架整合_第22张图片

           (3)把action交给spring来管理(在spring配置文件配置action类) 

                     比如将struct中的userAction交给spring创建,修改applicationContext.xml

                     spring、struct、hibernate三大框架整合_第23张图片

                     注:scope为作用域,其中的值表示每次请求就new一个action

 

           (4)在struts.xml里面,从springioc工厂去加载action类

                    spring、struct、hibernate三大框架整合_第24张图片

           (5)测试:启动tomcat,打开浏览器输入http://localhost:8080/SSH/login.jsp,点击登录后如果能跳到index.jsp页面,并且控制台输出“测试成功(login方法中的输 出语句)”则整合成功

 

      6、spring与hibernate3整合:核心接管sessionFactory,配置声明式事务,管理hibernate中的session

          (1)配置sessionFactory:在applicationContext.xml添加配置

                    spring、struct、hibernate三大框架整合_第25张图片

                   注:数据源dataSource并未配置,表示与hibernate关联

          (2)配置数据源c3p0

                    引人c3p0jar

                   

                    在applicationContext.xml中添加配置

                    spring、struct、hibernate三大框架整合_第26张图片

         (3)删掉hibernate.cfg.xm与applicationContext.xml中重复的部分,删除后如下:

                   spring、struct、hibernate三大框架整合_第27张图片

         (4)测试:

                  修改UserDao,继承hibernateDaoSupport

                  spring、struct、hibernate三大框架整合_第28张图片

                  为UserDao注入sessionFactory

                 

                  修改Test的代码

                  spring、struct、hibernate三大框架整合_第29张图片

                  运行Test,如果数据库中插入了“hehe”,则表示测试成功

      (5).在applicationContext.xml配置声明式事务(把事务控制的放在业务层)

                 spring、struct、hibernate三大框架整合_第30张图片

                注:expression的值表示切面点是service包下的,任意类任意方法任意参数。这里可以先建一个名为service的package,并新建一UserService类占位

                表示:任意方法都拥有事务

     (6)配置openSessionInView

               在web.xml中配置openSessionInView过滤器

              

               注:该过滤器需放在struct过滤器前面

 

四、测试:以注册为例 

        (1)修改user的属性(添加属性password)

                  spring、struct、hibernate三大框架整合_第31张图片       

        (2)创建register.jsp页面,其body体如下

                  spring、struct、hibernate三大框架整合_第32张图片

        (3)先建一个名为service的package,并新建一UserService类(如果刚才没建的话),并增加save方法

                   spring、struct、hibernate三大框架整合_第33张图片

        (4)在UserAction增加register方法

                 spring、struct、hibernate三大框架整合_第34张图片

        (5)在applicationContext.xml中配置bean

                  spring、struct、hibernate三大框架整合_第35张图片

        (6)修改struct.xml文件

                   spring、struct、hibernate三大框架整合_第36张图片

           运行程序:启动tomcat,打开浏览器输入http://localhost:8080/SSH/register.jsp,输入用户名和密码后点击提交,如果能跳到index.jsp页面,并且在数据库中能找到相 应的 数据,则表明整合成功

 

SSH三大框架整合(粗粒度)完成

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(SSH)