Java ssh2简单整合流程

一、关于本次整合的部署版本

spring 3.1.4 

hibernate 4.2.0 final(原本使用的4.3beta,后来有个bug未能攻破,换了4.2的core包)

struts 2.3.14相关链接:http://s3.amazonaws.com/dist.springframework.org/release/SPR/spring-framework-3.1.4.RELEASE-with-docs.ziphttp://jaist.dl.sourceforge.net/project/hibernate/hibernate4/4.2.0.Final/hibernate-release-4.2.0.Final.zip

http://labs.mop.com/apache-mirror//struts/library/struts-2.3.14-lib.zip

二、部署过程详解1、首先需要spring文档一份2、导入spring的jar包,在类路径下添加一个applicationContext.xml对ioc进行测试

<?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:aop="http://www.springframework.org/schema/aop"         
	xmlns:tx="http://www.springframework.org/schema/tx"          
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"          
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="          
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd          
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd          
	http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd          
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd          
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"         
	default-autowire="byName">
	<bean id="testService" class="cn.tv189.service.TestService"></bean>
</beans>

TestService.java代码

package cn.tv189.service;

public class TestService {
	
	public String doService(){
		return "got u";
	}
}

spring测试代码:

package cn.tv189.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.tv189.service.TestService;

public class TestSpring {
	public static void main(String[] args) {
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		TestService ts = (TestService)ac.getBean("testService");
		String re = ts.doService();
		System.out.println(re);
	}
}

note:
可能会提示缺少commons-logging.jar包,你可以在下载的struts的lib文件下找到,或者别的什么地方


————————————————————spring部署结束————————————————————


3、将下载的hibernate的jar包导入工程中

i)在applicationContext.xml中加入
dbcp数据源配置(由spring进行自动管理)

<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc.driverClassName}"/>
		<property name="url" value="${jdbc.url}"/>
		<property name="username" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>
		<property name="initialSize" value="3"/>
		<property name="maxActive" value="100"/>
		<property name="maxIdle" value="2"/>
		<property name="minIdle" value="1"/>
	</bean>
	<context:property-placeholder location="classpath:jdbc.properties"/>

配置sessionFactory

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource2"/>
		<property name="mappingResources">
			<list>
				<value>cn/tv189/domain/student.hbm.xml</value>
			</list>	
		</property>
		<property name="hibernateProperties">
			<value>
				hibernate.dialect=org.hibernate.dialect.OracleDialect
				hibernate.hbm2ddl.auto=update
				hibernate.show_sql=true
				hibernate.format_sql=true
			</value>
		</property>
	</bean>

note:
这边仅仅hibernate的jar包是不够的,因为涉及到数据库连接池,所以单独使用dbcp需要去apache
下载三个包,分别是:commons-dbpc.jar、commons-collections.jar、commons-pool.jar
(详见http://commons.apache.org/)
当然不能忘记数据库驱动,我这边用的是oracle,当然就要导入ojdbc了。


ii)配置jdbc.properties
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:xe
jdbc.username=system
jdbc.password=1234


java测试代码:

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		SessionFactory sf = (SessionFactory) ac.getBean("sessionFactory");
		Session s = sf.openSession();
		Student stu = new Student("汤姆andJerry");
		Transaction ts = s.beginTransaction();
		s.save(stu);
		ts.commit();

5、这里是Student类的domain和xml

Student.java

package cn.tv189.domain;

	import java.io.Serializable;

	public class Student implements Serializable{
		private static final long serialVersionUID = -3807511470861510540L;
		private int id;
		private String name;
		public Student(){
			
		}
		public Student(String name) {
			this.name = name;
		}
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}
		
		
	}

student.hbm.xml


<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE hibernate-mapping PUBLIC
		"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
	<hibernate-mapping package="cn.tv189.domain">
		<class name="Student" table="student">
			<id name="id" column="id" type="java.lang.Integer">
				<generator class="native"/>
			</id>
			<property name="name" type="java.lang.String">
				<column name="email" length="160"/>
			</property>
		</class>
	</hibernate-mapping>

————————————————————hibernate部署结束————————————————————



6、struts2的部署比较简单,参考spring文档的公共部署部分配置web.xml

 <listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext*.xml</param-value>
  </context-param>

7、加入struts2核心包和其他几个必须的包
commons-fileupload.jar
freemarker.jar
ognl-2.7.3.jar
struts2-core.jar
xwork-core.jar

note:
这里有个和spring整合时候用到的特殊的包:
struts2-spring-plugin-2.3.14.jar


8、配置struts2的过滤器到web.xml

<filter>
	<filter-name>strutsFilter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>strutsFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
	
	
	


note:
这里一般会配置一个防止内存溢出的监听器(spring管理的bean本身不会溢出,但是第三方可能会在请求后无法正常回收):

<listener>
		<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
	</listener>

9、在类路径下配置struts2的配置文件struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
	<!DOCTYPE struts PUBLIC
		"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
		"http://struts.apache.org/dtds/struts-2.3.dtd">
	<struts>
		<package name="stu-package" extends="struts-default">
			<action name="list" class="studentAction">
				<result name="success">/index.jsp</result>
			</action>
		</package>
	</struts>


同时在applicationContext.xml下加入:

	<bean id="studentAction" class="cn.tv189.action.StudentAction">
		<property name="testService" ref="testService"/>
	</bean> 

note:
这里struts.xml的action中的class指向的是applicationContext.xml中的bean的id,这样就能找到类了。
至此,spring的ioc和struts.xml的ioc就关联起来了,大功告成!

最后的一些note:
可能会缺少一些相关的包,这里列出一些我遇到的,假如还不足,自求多福吧(哈哈哈,开玩笑的,互相交流~)
可以在struts2的lib目录下找到的包:
commons-lang3.jar
commons-io.jar


java测试代码:

package cn.tv189.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

import cn.tv189.domain.Student;
import cn.tv189.service.TestService;

public class StudentAction {
	
	private TestService testService;
	private Student s;
	public String execute(){
		System.out.println("调用成功");
//		ServletActionContext.getRequest()
		testService.doService();
		s = new Student();
		s.setId(1);
		s.setName("Tom&杰瑞");
		
		return "success";
	}
	
	
	
	public Student getS() {
		return s;
	}

	public void setS(Student s) {
		this.s = s;
	}

	public TestService getTestService() {
		return testService;
	}
	public void setTestService(TestService testService) {
		this.testService = testService;
	}
	
}

index.jsp代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<table>
		<tr>
			<td>${s.id}</td>
			<td>${s.name}</td>
		</tr>
	</table>
</body>
</html>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值