入门SSH整合

  • 首先部署Spring框架

I:需要加入的jar包:

Spring核心包

org.springframework.asm-3.1.1.RELEASE.jar

org.springframework.beans-3.1.1.RELEASE.jar

org.springframework.context-3.1.1.RELEASE.jar

org.springframework.core-3.1.1.RELEASE.jar

org.springframework.expression-3.1.1.RELEASE.jar

commons-logging-1.1.3.jar  spring 依赖的日志包

org.springframework.web-3.1.1.RELEASE.jar  在web工程中需要加入的spring web包

II:在web.xml文件中进行配置 spring 启动IOC容器

<context-param >

<param-name >contextConfigLocation </param-name>

//spring配置文件的位置

<param-value> classpath:applicationAction.xml</param-value >

</context-param >

<!-- 配置启动 Spring IOC 容器的 Listener -->

<listener >

<listener-class>

org.springframework.web.context.ContextLoaderListener

</listener-class >

</listener >

III:创建spring配置文件 applicationAction.xml

  • 加入Sturts2的框架

I:加入Struts2的核心jar包:

asm-3.3.jar

asm-commons-3.3.jar

asm-tree-3.3.jar

commons-fileupload -1.2.2.jar

commons-io -2.0.1.jar

commons-lang3-3.1.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

ognl-3.0.5.jar

II:在web.xml文件中加入struts2的配置

<!--配置启动Struts2 -->

<filter >

<filter-name> struts2</ filter-name>

<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class>

</filter >

<filter-mapping >

<filter-name> struts2</ filter-name>

<url-pattern> /*</ url-pattern>

</filter-mapping >

III:添加struts2的配置文件struts.xml

IV:整合Spring和struts2

需要添加加入一个 jar 包: Struts2 下的 struts2-spring-plugin-2.3.15.3.jar

VI:最好先测试一下是否可以 跑通

  • 整合hibernate

I:加入hibernate核心jar(注意要和已有jar去除重复的,原则是去除低版本的相同jar)

antlr-2.7.7.jar

dom4j-1.6.1.jar

hibernate-commons-annotations-4.0.2.Final.jar

hibernate-core-4.2.4.Final.jar

hibernate-jpa-2.0-api-1.0.1.Final.jar

javassist-3.15.0-GA.jar

jboss-logging-3.1.0.GA.jar

jboss-transaction-api_1.1_spec-1.0.1.Final.jar

//这是常用jar包

c3p0-0.9.1.2.jar

mysql-connector-java-5.0.8-bin.jar

加入 jar 包:
注:这是spring3.X的版本,其他版本可以不一样
集成  hibernate 需要加入的

在spring包中

org.springframework.jdbc-3.1.1.RELEASE.jar

org.springframework.orm-3.1.1.RELEASE.jar

org.springframework.transaction-3.1.1.RELEASE.jar

使用 Spring 的声明式事务:

在依赖文件包中
com.springsource.net.sf.cglib-2.2.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

这个是在spring的jar包中
spring-aop-4.0.0.RELEASE.jar

II:创建hibernate的配置文件hibernate.cfg.xml

<session-factory>

<property name="dialect" >org.hibernate.dialect.MySQLInnoDBDialect </property>

<property name= "show_sql">true</property >

<property name= "format_sql">true</property >

<property name="hibernate.connection.isolation" >2 </property>

<!-- 指定自动生成数据表的策略 -->

<property name= "hbm2ddl.auto">update</property >

</session-factory >

配置最简单的hibernate文件,数据库连接和读取.hbm.xml文件都放在spring的配置文件中进行配置

以上是对SSH的jar包和基本配置描述,下面是在以上配置的基础上的一个简单的SSH例子进行实现

  • 首先在以上配置的基础上 创建一个Model ,Employee类

//员工信息类

public class Employee {

private Integer empId ;

private String empName;

private Integer age ;

public Integer getEmpId() {

return empId ;

}

public void setEmpId(Integer empId) {

this.empId = empId;

}

public String getEmpName() {

return empName ;

}

public void setEmpName(String empName) {

this.empName = empName;

}

public Integer getAge() {

return age ;

}

public void setAge(Integer age) {

this.age = age;

}

}

  • 2:创建Dao层 EmployeeDao

  public class EmployeeDao {

//session工厂获取一个hibernate 的session会话

private SessionFactory sessionFactory;

public void setSessionFactory(SessionFactory sessionFactory) {

this.sessionFactory = sessionFactory;

}

//获取一个hibernate 的session会话

public Session getCurrentSession(){

Session currentSession = sessionFactory.getCurrentSession();

return currentSession;

}

//插入一条员工信息对象

public void save(Employee emp) {

getCurrentSession().save(emp);

}

}

  • 创建逻辑层 EmployeeService

public class EmployeeService {

//注入对象

private EmployeeDao employeeDao;

public void setEmployeeDao(EmployeeDao employeeDao) {

this.employeeDao = employeeDao;

}

//插入一条数据

public void save(Employee emp){

employeeDao.save(emp);

}

}

  • 创建VIEW层EmployeeAction 接受页面访问的action

public class EmployeeAction {

private EmployeeService employeeService;

public void setEmployeeService(EmployeeService employeeService) {

this.employeeService = employeeService;

}

public String save() {

Employee employee = new Employee();

employee.setAge(13);

employee.setEmpName( "xiaoxiao");

employeeService.save(employee);

return "save" ;

}

}

  • 配置Struts.Xml文件

<package name= "default" namespace ="/" extends="struts-default" >

<action name= "emp-*" class ="employeeAction" method="{1}" >

<result name="save" >/WEB-INF/pages/list.jsp </result>

</action>

</package >

  • 生成Employee的hibernate的映射文件

<hibernate-mapping>

<class name="ssh.beans.Employee" table= "EMPLOYEES">

<id name= "empId" type ="java.lang.Integer">

<column name= "EMPID" />

<generator class= "native" />

</id>

<property name= "empName" type ="java.lang.String">

<column name= "EMPNAME" />

</property>

<property name= "age" type ="java.lang.Integer">

<column name= "AGE" />

</property>

</class >

</hibernate-mapping>

  • 最要是spring的配置文件applicationAction.xml中对Struts2和hibernate的管理

I:首先是配置数据源

<!-- 声明引用资源文件的位置  在工程项目中加入一个db.properties文件保存数据库的连接和配置信息-->

<context:property-placeholder location="classpath:db.properties" />

<!-- 配置 C3P0 数据源 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >

<property name= "user" value="${user}" ></property>

<property name= "password" value="${password}" ></property>

<property name= "driverClass" value="${driver}" ></property>

<property name= "jdbcUrl" value="${url}" ></property>

</bean >

II:初始化sessionfactory

<!-- 初始化 hibernate的session会话 -->

<bean id="sessionFactory"

class= "org.springframework.orm.hibernate4.LocalSessionFactoryBean" >

<property name= "dataSource" ref="dataSource" ></property>

<!--hibernate的配置文件的路径-->

<property name= "configLocation" value="classpath:hibernate.cfg.xml" ></property>

<!--hibernate的各个类的Maping的路径-->

<property name= "mappingLocations" value="classpath:ssh/beans/*.hbm.xml" ></property>

</bean >

III:开启spring的事务进行对hibernate的操作同一管理

<bean id= "transactionManager"

class= "org.springframework.orm.hibernate4.HibernateTransactionManager" >

<property name= "sessionFactory" ref="sessionFactory" ></property>

</bean >

//事务作用的方法和作用的方式

<tx:advice id="advice">

<tx:attributes>

<tx:method name= "*" />

</tx:attributes>

</tx:advice >

<aop:config >

//针对相应的包中的类方法进行事务处理

<aop:pointcut expression="execution(* ssh.service.*.*(..))"

id= "exp" />

<aop:advisor advice-ref="advice" pointcut-ref="exp" />

</aop:config >

VI:把需要注入的类交给IOC进行管理和配置

<bean id= "employeeAction" class="ssh.Actions.EmployeeAction"

scope= "prototype">

<property name= "employeeService" ref="employeeService" ></property>

</bean >

<bean id="employeeService" class="ssh.service.EmployeeService" >

<property name= "employeeDao" ref="employeeDao" ></property>

</bean >

<bean id="employeeDao" class= "ssh.Dao.EmployeeDao">

<property name= "sessionFactory" ref="sessionFactory" ></property>

</bean >

以上就是最简单SSH整合方式

时间: 2024-12-17 21:00:00

入门SSH整合的相关文章

《轻量级Java Web整合开发入门SSH》 - 快速理解Java框架的又一积木

学习JAVA不难,难的是没有多余的时间给你仔细学习.       伴随着项目的不断跟进,责任重于泰山,必须快速提升.       我不能期望把一本书或者一个项目完全吃透,只希望能用数量去换取多一点的进步.       看了多本JAVA基础教程以及快速的项目代码浏览之后,挑了本框架的书.       其实作为个人来说,感觉JAVA技术变更太快,以至于对于3年前书,就会感觉已经过时了,学了也没什么用.但是没办法,自己也没有更好的选择,只好随便捡起一杯老旧的框架书籍.读了起来!(质量确实不咋样,不过对

java web开发入门五(ssh整合)基于intellig idea

SSH整合 1.引入jar包 Struts 核心jar Hibernate 核心jar Spring Core  核心功能 Web  对web模块支持 Aop   aop支持 Orm   对hibernate支持 Jdbc/tx  jdbc支持包.事务相关包 2.配置xml *.hbm.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hibernate-mapping PUBLIC &qu

SSH整合基础

1.Spring整合Hibernate 整合步骤 导包 配置appliactionContext.xml 创建实体类和映射关系文件 创建DAO接口及实现类 声明DAO组件,注入SessionFactory 2.Spring整合Struts2 导包 配置web.xml 配置applicationContext.xml,开启注解扫描 创建并声明Action 配置Action 创建JSP 3.整合的基本原理 Struts原本使用StrutsObjectFactory来读取struts.xml,根据ac

SSH整合开发时Scope为默认时现象与原理

1.前提知识 1)scope默认值 进行SSH整合开发时,Struts2的action需要用spring容器进行管理,只要涉及到类以bean的形式入到spring容器中,不管是xml配置还是使用注解方式进行配置,都会涉及到spring管理bean的scope,其一共有五种取值,而其默认值为singleton,也就是单例模型,所有对此bean引用为同一个对象. 2)action应为多例 struts2作为MVC中视图(View)层框架,其最主要任务就是接收用户请求,然后调用业务逻辑层进行处理,这种

Spring(八)SSH整合简述

一.Spring与Struts2的整合 1.1.整合步骤 1.2.配置web.xml 1.3.配置spring配置文件applicationContext.xml 1.4.配置struts配置文件 1.5.Action继承ActionSupport类 二.spring与hibernate整合 2.1.步骤 2.2.注入sessionFactory <--数据源--> <bean id="dataSource" class="org.springframewo

SSH整合(配置方式)

工程目录: /SSH1/src/cn/itcast/domain/Book.java package cn.itcast.domain; /** * 图书 */ public class Book { private Integer id; // 图书编号 private String name; // 图书名称 private Double price; // 图书价格 public Integer getId() { return id; } public void setId(Intege

mysql+ssh整合例子,附源码下载

项目引用jar下载:http://download.csdn.net/detail/adam_zs/7262727 项目源码下载地址:http://download.csdn.net/detail/adam_zs/7262749 今天花时间把ssh整合了一下,重新再学习一下,希望对大家有所帮助! 我用的是mysql数据库,建表语句比较简单就不贴出来了,建表的时候记的设置id为自动增加哦. 项目文件位置,项目引用jar包 项目配置文件 web.xml <?xml version="1.0&q

SSH整合(1)异常

信息: No Spring WebApplicationInitializer types detected on classpath 十二月 01, 2016 10:06:12 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext log4j:WARN No appenders could be found for logger (org.spr

ssh整合例子

今天给大家介绍一下最新版本的SSH(struts2.2.1+ hibernate3.6+spring3.0.5)组合.注意本讲解为手工搭建! 一.为SSH做好准备 struts2-2.2.1-all.zip       hibernate-distribution-3.6.0.Final-dist.zip spring-framework-3.0.5.RELEASE.zip spring-framework-2.5.6-with-dependencies.zip slf4j-1.6.1.zip