这里是个人对SSH框架搭建的一点心得,仅供新手,勿喷

首先,搞清楚分层,

视图层 --》 控制层  --》 业务层 --》 DAO层--》 持久层

搭建的顺序是从后向前,搭建一点测试一点,免得都最后找错误太过于繁琐

先搭建持久层,这里是hibernate框架接管

1、建立javaBean对象(ElecText.jvav)
   属于持久层对象(PO对象)
   属性ID、名称、日期、备注
2、创建映射文件ElecText.hbm.xml
   建立PO对象与数据库表Elec_Text的关联关系
3、创建Hibernate.cfg.xml文件,配置连接数据库的信息

4.写测试文件,是否搭建成功

DAO层:

这里掌管的是和数据库有关的CRUD方法,采用的是面向接口的方法,一个DAO类实现一个接口,通过接口

使用方法

业务层:

①先spring

②引jar包

③编写beans.xml文件,放在src目录下

④测试spring是否能够工作

⑤加入hibernate

⑥因为是SSH,所以hibernate被spring接管了hibernate.cfg.xml文件对象映射文件,sessionfactory在spring文件中配置即可

⑦在beans.xml文件中配置数据源

<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/elec"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="30"/>
<!-- 连接池的最大值 -->
<property name="maxActive" value="500"/>
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2"/>
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1"/>
</bean>

这里也能够全部交给hibernate.cfg.xml来进行配置

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 1配置注解的自动扫描范围 -->
<context:component-scan base-package="cn.itcast.elec"></context:component-scan>
<!-- 2配置数据源-->
<!--3 创建sessionfactory工厂-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>
classpath:hibernate.cfg.xml
</value>
</property>
</bean>
<!--4 事物管理器-->
<bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
<!--5 以注解的 形式管理事物-->
<tx:annotation-driven transaction-manager="txManage" /> <!-- 配置自己的sessionfactory工厂,模拟模板的机能实现 --> <bean id="ElecText_impl" class="cn.itcast.elec.impl.ElecText_impl">
<property name="sessionFactory" ref="sessionFactory"> </property>
</bean> </beans>

⑧配置sessionfactory工厂

<!--3 创建sessionfactory工厂-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 设置数据源 -->
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<!-- 接管hibernate的对象映射文件 -->
<list>
<value>cn/itcast/elec/domain/ElecText.hbm.xml</value>
</list>
</property>
<!-- hibernate的文件 -->
<property name="hibernateProperties">
<value> <!-- SQL dialect -->
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
hibernate.connection.autocommit = true
hibernate.show_sql = true
hibernate.hbm2ddl.auto = update
</value>
</property>
</bean>

⑨编写domain对象和映射文件,然后进行简单的测试
⑩考虑分层  使用事务管理器统一管理事务

<!--4 事物管理器-->
<bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
<!--5 以注解的 形式管理事物-->
<tx:annotation-driven transaction-manager="txManage" />

启动事务注解

@Transactional(readOnly=true)

⑩②在hibernate里面配置二级缓存

⑩③整合struts2

<1>引包

<2>创建struts.xml,放在/WEB-INF目录下

14.在初始化的struts的同时初始化spring容器

<!-- 指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找 -->

<context-param>

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

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

</context-param>

<!-- 对Spring容器进行实例化 -->

<listener>

      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

通过获取spring容器实例

HttpServletRequest request = ServletActionContext.getRequest(); 

//通过预加载后对spring的容器进行获取

WebApplicationContext app = WebApplicationContextUtils.

getWebApplicationContext(request.getSession().getServletContext());

通过上面的配置直接代替了下面的

ApplicationContext app = new ClassPathXmlApplicationContext("beans.xml");

14.让spring接管struts组件

<1>在struts.xml添加代码

<!-- 配置代理请求处理 DelegatingRequestProcessor ,它的用户是 -->

<controller>

  <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>

</controller> 

<2>在beans.1中配置action

<bean name="elecTextAction" class="cn.itcast.elec.action.Elect_Test_Action" /> 

15.解决中文乱码问题

1.自己配置过虐器

2.使用spring框架提供的处理中文乱码的过虐器

16.spring可以用注解的方式配置属性

<1>在需要注入的属性加入@Resource 启动byname方式进行注入属性值

<2><!-- 启动注解扫描 -->

<context:annotation-config/>

ssh框架简单搭建的更多相关文章

  1. Struts2+Spring+Hibernate(SSH)框架的搭建

    首先需要下载struts2 ,spring4,hibernate5  的资源包; struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://p ...

  2. ssh框架的搭建

    SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层,以 ...

  3. SSH框架的搭建和测试(Spring + Struts2 + Hibernate)

    SSH框架实现了视图.控制器.和模型的彻底分离,同时还实现了业务逻辑层与持久层的分离. Spring实现了MVC中的 Controller的功能,Struts实现Web视图的功能,Hibernate则 ...

  4. struts2+spring+hibernate(SSH)框架的搭建和总结

    SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...

  5. SSH框架环境搭建问题:java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required

    SSH框架启动tomcate时出错 严重: Exception sending context initialized event to listener instance of class org. ...

  6. SSH入门简单搭建例子

    因为公司涉及项目使用SSH,为了解SSH搭建方式和运作原理,就自己搭建了一个. 采用尽量以最少的JAR包,搭建一个简单的struts2+spring+hibernate环境,希望像我这样的入门者都能理 ...

  7. PHP之MVC微型框架简单搭建

    好长时间没有写博客了,这段时间过得紧张的不行,以致于都没有抽出时间来好好的总结一下自己这段时间的生活和学习. 其实今天不想写什么技术博客,就想简单总结一下这段时间的生活.10月8号从家里回来以后决定自 ...

  8. SSH框架环境搭建问题:Line: 230 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:230:-1

    只是通过myeclipse搭建一个框架而已 启动tomcat时报错信息: File: SpringObjectFactory.java Method: getClassInstance Line: 2 ...

  9. Django学习(二) Django框架简单搭建

    为了快速学习Python进行Web的开发,所以我不准备从Python的基础学起,直接从Django框架入手,边学框架边学Python的基础知识. 下面就开始Django的快速开发之旅吧. 关于Djan ...

随机推荐

  1. Java 比较两个字符串的大小

    比较两个字符串的大小 static int compareTo(String s1, String s2) { int len1 = s1.length(); int len2 = s2.length ...

  2. Solr 多核(MultiCore)配置

    Solr Multicore意义        Solr Multicore 是 solr 1.3 的新特性.其目的一个solr实例,可以有多个搜索应用.< xmlnamespace prefi ...

  3. 使用Redis作为消息队列服务场景应用案例

    一.消息队列场景简介 "消息"是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,"消息队列&qu ...

  4. Tcxtreelist动态控制列或行是否能够编辑

    procedure Tfrmaaa.grd1Editing(Sender: TObject; AColumn: TcxTreeListColumn; var Allow: Boolean);begin ...

  5. LoadRunner的场景设置

    loadrunner场景设置的方法: 1.逐步增加用户数,分多次去运行场景.比如:第一次运行50并发,第二次运行100并发…… 2.针对同一个脚本设置多个组,使用组策略(点击Edit Schedule ...

  6. Ubuntu系统下为IDEA创建启动图标

    默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“idea.desktop”的文件. ...

  7. Java IO复习 UDP

    客户端: package cn.zyw.javaurl; import java.io.IOException; import java.net.*; /** * Created by zyw on ...

  8. CPP变量参数别名

    1,变量起"绰号"的操作称为引用(reference),"绰号"称为引用名,申明引用的语法格式; 变量数据类型 &引用名 = 已申明的变量名; 和C中的 ...

  9. 第十七章、程序管理与 SELinux 初探 工作管理 (job control)

    工作管理 (job control) 这个工作管理 (job control) 是用在 bash 环境下的,也就是说:『当我们登陆系统取得 bash shell 之后,在单一终端机介面下同时进行多个工 ...

  10. Project Server 2013两个权限模型介绍

    Project Server 2013中无法使用“新建用户”功能? 当我们的Project Server 2013刚刚安装好时,在PWA的服务器设置中找不到新建用户的选项,是什么原因造成的呢? 原来是 ...