【前言】
说来惭愧,使用ssh2很长时间了,但是还是第一次利用myeclipse整合ss2,就是搭建ssh2框架,
另外根据struts2的约定,实现了正真的零配置,没有使用注解。
【参考文章】
网上浏览了好多文章,帮助最大的有:
ssh2整合:http://xly3000.blog.163.com/blog/static/1324247201231163828803/
struts2约定:http://xiaoxuejie.iteye.com/blog/1563944
【准备】
1.Myeclipse10
2.数据库(本文使用firebird):http://www.firebirdsql.org/
【ssh2整合】
1.创建项目
新建一个Web Project(File--New--Web Project),Project Name为ssh2,选择Java EE 6.0,如图:
目录结构:
2.添加Spring3.1
右键项目ssh2--Myeclipse--Add Spring Capabilities,选择Spring3.1,选择core,persistence和web三个jar,选择copy到lib folder,如图:
点击next,
去掉aop的勾,将xml文件路径选为webroot/web-inf下,如图:
点击Finish
3.添加Hibernate4.1
同上,Add Hibernate Capabilities,选择Hibernate4.1,选择core和advanced的两个jar,选择copy到lib folder下,如图:
点击Next,选择spring的配置文件,如图:
点击Next,选择已存在的spring配置文件,如图:
点击Next,去掉创建datasource的选项,如图:
点击Nexr,去掉创建SessionFactory的选项,如图:
点击Finish。
4.添加Struts2.1
同上,Add Struts Capabilities,选择Struts2.1和/*匹配,如图:
点击Next,选择core的jar,点击Finish。
5.修改applicationContext.xml
由于之前没有配置数据源和设置SessionFactory,所以这里要修改一下spring的配置文件,修改成下面这样,
当然也可以有其他形式,具体参见http://hi.baidu.com/wolf55/item/528315092fab6834a3332a8f
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean> </beans>
6.添加hibernate.cfg.xml文件到src下,以FireBird为例,代码:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <!-- jdbc for firebird --> <property name="connection.driver_class">org.firebirdsql.jdbc.FBDriver</property> <property name="connection.url">jdbc:firebirdsql:localhost:E:\Documents\FireBird\test.fdb</property> <property name="connection.username">uikoo9</property> <property name="connection.password">uikoo7</property> <!-- dialect for firebird --> <property name="dialect">org.hibernate.dialect.FirebirdDialect</property> <!-- 打印SQL --> <property name="show_sql">true</property> <!-- 创建表 --> <property name="hbm2ddl.auto">update</property> <!-- 线程 --> <property name="current_session_context_class">thread</property> <property name="javax.persistence.validation.mode">none</property> <!-- 映射实体类 --> <mapping class="com.uikoo9.bean.Cat"/> </session-factory> </hibernate-configuration>
7.添加数据库jdbc包,这里以FireBird为例,添加jaybird-full-2.2.1.jar
8.部署项目到Myeclipse自带的Tomcat上,如图:
run server,正常启动。
至此ssh2的Myeclipse整合就实现了,整个项目的目录结构:
【零注解实现Struts2零配置】
1.src下新建代码,目录结构如下:
其中UserAction.java的代码:
package com.uikoo9.action; public class UserAction { public String execute(){ return "success"; } }
2.在webroot/web-inf下新建文件夹content,在content下新建user-success.jsp,代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>零注解实现Struts2零配置</title> </head> <body> 这是user-success.jsp页面!! </body> </html>
3.重新部署到tomcat之后run server,访问:http://localhost:8080/ssh2/user.action,页面如下:
ok,零配置讲的有点粗略,实现原理和其他内容参考上面的文章。