ssh框架搭建(详细版)

由于项目需要,现在需要再搭建一次ssh。由于之前搭过几次,有一定的经验,但是有些地方还不是很明白,所以借这次机会,我打算把搭建的过程以及相关的疑惑一并解决。这次的搭建过程还是依赖eclipse的相关插件来自动生成,过几天再尝试自己下载jar包来完成整个创建过程。

首先点击创建Web Project,在弹出的对话框中填写自己的项目名称。

ssh框架搭建(详细版)_第1张图片

在下面选择J2ee的版本,我选择的是Java EE 6.0,关于5.0与6.0的区别,给个传送门,晚上再来补充

http://hi.baidu.com/i_ccboy/item/b4577651fbf7cf444eff2095 对于里面讲的一些内容,我也没用过。总的来说6.0比5.0多了一些类与接口。

看下来,我看到了Maven,这个东西又是干嘛的呢?

接下来,搭建struts2框架,右击项目名称-〉myeclipse-〉add struts capabilities

ssh框架搭建(详细版)_第2张图片

点击finish搞定。这时候在Package Explorer中的src文件夹下就会有出现struts.xml文件。

ssh框架搭建(详细版)_第3张图片

我们可以对比一下框架搭建前的包视图,发现多了Struts 2 Core Libraries库,这个就是对struts2所需的jar包的引用,引用的这些包是myeclipse自带的,放在myeclipse一个固定的位置,所以当其他人用myeclipse导入你的项目的时候,该项目依然能够正常运行。但是如果使用的eclipse版本太低,没有这些默认包的话就会出错。如果我们不使用myeclipse自带包,想自己搭建环境的话,一般在项目根目录下新建lib文件夹,把包放在里面,然后在myeclipse中右击项目名称-〉buildpath-〉add libraries 加入刚放入lib文件夹中的包。

为了检测struts2搭建是否成功,我们在src新建一个包,并在该包内新建一个类。

image

testAction.java 代码

   1:  /**
   2:   * com.reminder.test.action
   3:   * create on 2014-1-4 下午3:21:19
   4:   */
   5:  package com.reminder.test.action;
   6:   
   7:  import com.opensymphony.xwork2.ActionSupport;
   8:   
   9:  /**
  10:   * Copyright 2014 SCUT
  11:   *     All right reserved.
  12:   * Create on 2014-1-4  下午3:21:19
  13:   * @project 139Reminder
  14:   * @module 
  15:   * @case 
  16:   * @author yangkai
  17:   * @completed 90%
  18:   */
  19:   
  20:  public class testAciton extends ActionSupport{
  21:   
  22:      private String testCode;
  23:      
  24:      public String getTestCode() {
  25:          return testCode;
  26:      }
  27:   
  28:      public void setTestCode(String testCode) {
  29:          this.testCode = testCode;
  30:      }
  31:   
  32:      /**
  33:       * @Case 
  34:       * @author yangkai
  35:       * @email [email protected]
  36:       * @createTime 2014-1-4  下午3:24:38
  37:       * @completed 90%
  38:       * @see com.opensymphony.xwork2.ActionSupport#execute()
  39:       */
  40:      @Override
  41:      public String execute() throws Exception {
  42:          // TODO Auto-generated method stub
  43:          return "success";
  44:      }
  45:  }

 

然后需要配置web.xml里面,加入struts2的监听器,代码如下:

   1:  "1.0" encoding="UTF-8"?>
   2:  "3.0" 
   3:      xmlns="http://java.sun.com/xml/ns/javaee" 
   4:      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   5:      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
   6:      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
   7:        
   8:    
   9:      index.jsp
  10:    
  11:    
  12:        struts2
  13:        class>
  14:            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  15:        class>
  16:    
  17:    
  18:        struts2
  19:        /*
  20:    

接着要配置struts.xml内容

 

   1:  "1.0" encoding="UTF-8" ?>
   2:  "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
   3:  
   4:      "139Reminder" extends="json-default" namespace="/">
   5:          "test" class="com.reminder.test.action.testAciton">
   6:              "success" type="json">
   7:                  "includeProperties">
   8:                      ^testCode
   9:                  
  10:              
  11:              "input" type="json">
  12:          
  13:      
  14:      

对项目进行部署,在浏览器中输入 你的服务器名/项目名/test?testCode=11 ,比如我的 http://yk:8080/139Reminder/test?testCode=1

会看到输出1,表示struts成功搭建。

 

接下来搭建Spring,右击项目名称-〉myeclipse-〉add spring capabilities

选择Spring 3.0 选择如下的包

ssh框架搭建(详细版)_第4张图片

其中,aop是spring对面向切面编程的支持,以后要用到的拦截器就属于AOP编程,所以应该导入该包。Core Library是spring的核心包,当然要导入啦。Persistence Core与JDBC Libraries都与Spring对持久层操作有关,如果不导入这两个包对hibernate整合有影响。对于其他包,没用过,也很难说清作用,要用的时候才查吧。

点击下一步

ssh框架搭建(详细版)_第5张图片

点击finish就完成spring的搭建。

我们再对比下myeclipse为我们完成了什么工作:

ssh框架搭建(详细版)_第6张图片

加入了web app libraries库,在web-inf中加入了applicationContext.xml文件,这个文件用来配置spring。

来到这里,很多同学都以为struts2与spring都搭完了,的确如此,但是这两者目前还是独立的框架,我们的目的是将两者关联起来。这时候就需要导入一个名为 struts2-spring-plugin-2.3.8.jar的包。同时,在struts.xml里面每个action的class也要改一下,从直接的引用action地址改为应用该action在spring中配置的名称。这样两者就关联起来了。

接下来搭建hibernate框架。我们选择的是Hibernate 3.3版本,右击项目名称-〉myeclipse-〉add hibernate capabilities

ssh框架搭建(详细版)_第7张图片

点击下一步,选择Spring来配置hibernate

 

ssh框架搭建(详细版)_第8张图片

 

选择已有的applicationContext.xml来配置hibernate

ssh框架搭建(详细版)_第9张图片

ssh框架搭建(详细版)_第10张图片

 

ssh框架搭建(详细版)_第11张图片

 

finish,搭建完成。

打开applicationContext.xml会看到myeclipse已经帮我们完成了spring对hibernate的控制。

同时,为了操作数据库,我们还需要再导入一个包:mysql-connector-java-5.1.18-bin.jar,这样hibernate才能操作jdbc。

至此,可以说ssh搭建完成。

 

现在检验一下我们搭建的环境能否运行。首先利用反向工程生成bean与dao。步骤如下:

在你的数据库中添加一个表test,里面一个字段:id。

在myeclipse调出数据库窗口(DB Browser)

ssh框架搭建(详细版)_第12张图片

右键-〉hibernate reverse engineering

ssh框架搭建(详细版)_第13张图片

上图中的create POJO是生成对象映射表,存储在xml文件中,在本例子中,若选择该项目会生成Test.hbm.xml。Java Data Object是生成映射对象,本例中将生成Test.java。点击next

ssh框架搭建(详细版)_第14张图片

 

点击finish完成bean的生成。看看myeclipse为我们完成了什么:打开applicationContext.xml,我们会发现名为sessionFactory的bean中多了一个名为mappingResources的property,里面能找到我们加入的数据库对象映射文件test.hbm.xml。并且在src中多了个名为com.reminder.bean的包。

image

第二步是加入dao层。

同样右击test表,点击hibernate reverse engineering

ssh框架搭建(详细版)_第15张图片

 

点击完成就可以了。

生成后出现错误?

image

别慌,打开TestDao.java,导入以下头文件:

import com.reminder.bean.Test;

然后把所有dao.Test替换为bean.Test。错误原因是myeclipse自动把持久类所在的位置默认为本包。替换过来就没事了。

建立com.reminder.test.service包,添加TestService.java类,代码如下:

   1:  /**
   2:   * com.reminder.test.service
   3:   * create on 2014-1-4 下午8:55:34
   4:   */
   5:  package com.reminder.test.service;
   6:   
   7:  import javax.annotation.Resource;
   8:   
   9:  import com.reminder.bean.Test;
  10:  import com.reminder.dao.TestDAO;
  11:   
  12:  /**
  13:   * Copyright 2014 SCUT
  14:   *     All right reserved.
  15:   * Create on 2014-1-4  下午8:55:34
  16:   * @project 139Reminder
  17:   * @module 
  18:   * @case 
  19:   * @author yangkai
  20:   * @completed 90%
  21:   */
  22:   
  23:  public class TestService {
  24:   
  25:      @Resource
  26:      private TestDAO testDao;
  27:      
  28:      public void findById(){
  29:          testDao.findAll();
  30:      }
  31:  }

建立com.reminder.test.action包,添加TestAction.java类,代码如下:

   1:  /**
   2:   * com.reminder.test.action
   3:   * create on 2014-1-4 下午3:21:19
   4:   */
   5:  package com.reminder.test.action;
   6:   
   7:  import javax.annotation.Resource;
   8:   
   9:  import com.opensymphony.xwork2.ActionSupport;
  10:  import com.reminder.test.service.TestService;
  11:   
  12:  /**
  13:   * Copyright 2014 SCUT
  14:   *     All right reserved.
  15:   * Create on 2014-1-4  下午3:21:19
  16:   * @project 139Reminder
  17:   * @module 
  18:   * @case 
  19:   * @author yangkai
  20:   * @completed 90%
  21:   */
  22:   
  23:  public class TestAciton extends ActionSupport{
  24:   
  25:      private String testCode;
  26:      
  27:   
  28:      @Resource
  29:      private TestService testService;
  30:   
  31:      /**
  32:       * @Case 
  33:       * @author yangkai
  34:       * @email [email protected]
  35:       * @createTime 2014-1-4  下午3:24:38
  36:       * @completed 90%
  37:       * @see com.opensymphony.xwork2.ActionSupport#execute()
  38:       */
  39:      @Override
  40:      public String execute() throws Exception {
  41:          // TODO Auto-generated method stub
  42:          testService.findById();
  43:          return "success";
  44:      }
  45:   
  46:      public String getTestCode() {
  47:          return testCode;
  48:      }
  49:   
  50:      public void setTestCode(String testCode) {
  51:          this.testCode = testCode;
  52:      }
  53:  }

 

最后得到的包如下图:

ssh框架搭建(详细版)_第16张图片

 

以上是采用注解的方式配置Action与dao的,所以要在applicationContext.xml中加入

以及各testService 与 testAction 的bean。配置的作用是自动帮我们引用Spring代理的bean。

转载于:https://www.cnblogs.com/youngkind/p/3505024.html

你可能感兴趣的:(ssh框架搭建(详细版))