ssh框架搭建(详细版)

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

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

image

在下面选择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

image

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

image

我们可以对比一下框架搭建前的包视图,发现多了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 417691478@qq.com
  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:  <?xml version="1.0" encoding="UTF-8"?>
   2:  <web-app version="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:    <display-name></display-name>    
   8:    <welcome-file-list>
   9:      <welcome-file>index.jsp</welcome-file>
  10:    </welcome-file-list>
  11:    <filter>
  12:        <filter-name>struts2</filter-name>
  13:        <filter-class>
  14:            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  15:        </filter-class>
  16:    </filter>
  17:    <filter-mapping>
  18:        <filter-name>struts2</filter-name>
  19:        <url-pattern>/*</url-pattern>
  20:    </filter-mapping></web-app>

接着要配置struts.xml内容

 

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

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

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

 

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

选择Spring 3.0 选择如下的包

image

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

点击下一步

image

点击finish就完成spring的搭建。

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

image

加入了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

image

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

 

image

 

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

image

image

 

image

 

finish,搭建完成。

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

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

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

 

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

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

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

image

右键-〉hibernate reverse engineering

image

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

image

 

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

image

第二步是加入dao层。

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

image

 

点击完成就可以了。

生成后出现错误?

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 417691478@qq.com
  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:  }

 

最后得到的包如下图:

image

 

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

<context:annotation-config/>以及各testService 与 testAction 的bean。配置的作用是自动帮我们引用Spring代理的bean。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值