对于SSH框架中部分的操作简化我分为两大类:

一:操作

1. 在SSH的struts.xml里

 name="Action类_*" class="注入的实例"(同上)

当我们访问的是Action_test.action,就会自动调用Action类的test方法

2.在我们的action标签里

1 <result type="redirectAction"></result>

Action处理完成后重定向到指定的Action

3.Spring声明式事务管理:

使用事务管理的目的:比如同时需要执行两条SQL语句时第二条失败了,我们就应该回滚,不让操作继续修改数据库的信息

在我们的dao包里,以前每使用到一个会话都要openSession,最后关闭,我们现在可以使用Spring给我们提供的getCurrentSession方法,每次都会去获取已经存在的会话,主要是要分离dao里的核心关注点和横切关注点,使用声明式事务管理我们要在applicationContext.xml配置文件加入以下代码

注意:缺包问题可以自行上官网下载,解压复制到项目的lib目录即可使用

二:注解

在我们使用注解前先在spring的applicationContext.xml配置文件加入以下代码

base-package="根包名"

1.简化Spring的注入,把以前的applicationContext.xml配置文件

<bean>、<property>标签通通去除掉

首先在我们的Action、Service、Dao包里只需要加相对应的定义的注解@Controller、@Service、@Repository

注意:

(1)例如@Controller(name="定义注入的实例"),不指定注入的实例,注解将会自动找到对应的Action的名称并会将首字母改成小写,将作为定义的名称

(2)不要忘记了在后面加上 Scope("prototype")非单例注解

2.定义完成后,进一步的简化,把Action、Service、Dao包中的set注入方法去掉,只需要定义声明变量就可以了,使用@Autowired、@Qualifier("注入实例的名称")

注意:@Autowired的单独使用,Spring会把返回值的类型跟你需要注入的实例做对比是否一致再注入对应的实例,万一返回值类型相同的有多个,注入的实例定会出错

3. 我们将使用注解,代替以前的实体类的XXX.hbm.xml映像文件

在我们的实体类加入以下注解
@Entity、@Table(name="数据库的表名")、@Id、
@GeneratedValue(strategy = GenerationType.AUTO)生成主键策略
@Column表示字段,如果需要加描述可以使用该注解的对应属性
删除完映射文件,我们还需要在applicationContext.xml里面配置,如下:


news/entity/News.hbm.xml是实体类所在的包

4. 附加jdk的注解, @Resource(name="注入的名称")也可以代替@Autowired、@Qualifier(name="注入的名称")

5.Spring使用注解事务管理

@Transactional写到类外就相当于整个类的方法都要经过事务

@Transactional(readOnly=true)也可以写到某个方法前,只读

shh简化的更多相关文章

  1. 简化注解shh框架

    找到上次我们搭建的SSH框架 浏览一下原始的applicationContext.xml文件中的部分配置. <bean id="myIndexAction" class=&q ...

  2. Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

    作者:Antonio Leiva 时间:Jan 5, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式 ...

  3. OEL上使用yum install oracle-validated 简化主机配置工作

    环境:OEL 5.7 + Oracle 10.2.0.5 RAC 如果你正在用OEL(Oracle Enterprise Linux)系统部署Oracle,那么可以使用yum安装oracle-vali ...

  4. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  5. 使用MonoTouch.Dialog简化iOS界面开发

    MonoTouch.Dialog简称MT.D,是Xamarin.iOS的一个RAD工具包.它提供易于使用的声明式API,不需要使用导航控制器.表格等ViewController来定义复杂的应用程序UI ...

  6. C#开发中使用配置文件对象简化配置的本地保存

    C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序 ...

  7. 使用 Code Snippet 简化 Coding

    在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for.foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提 ...

  8. WCF学习之旅—WCF4.0中的简化配置功能(十五)

    六 WCF4.0中的简化配置功能 WCF4.0为了简化服务配置,提供了默认的终结点.绑定和服务行为.也就是说,在开发WCF服务程序的时候,即使我们不提供显示的 服务终结点,WCF框架也能为我们的服务提 ...

  9. 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包

    0x00 前言 通过上一篇博客<匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的>的内容,我们实现了使用委托来构建我们自己的消息系统的过程.但是在日常的开发中,仍然有很多开发者因为 ...

随机推荐

  1. druid.properties的配置

    driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://NoOne:3306/eyes<!--需修改--> username=root ...

  2. 涵涵和爸爸习惯养成进度表(二)(May 30 - )

    规则说明 22天内,没有哭脸,不超过三个无表情脸,可以给一个奖励(动画书等) 涵涵违反规则,在爸爸和妈妈都同意的情况下,可以给无表情脸 爸爸违反规则,在妈妈和涵涵都同意的情况下,可以给无表情脸 获奖记 ...

  3. 麦咖啡阻挡正常打开Excel文件

    双击打开Excel文件,提示如下图: Excel文件被麦咖啡做阻挡,无法正常打开 处理方案: 过一会儿还是出现此问题,干脆就把缓冲区保护给禁用掉

  4. Unity中游戏的声音管理

    using UnityEngine;using System.Collections;using System.Collections.Generic;/// <summary>/// 用 ...

  5. FFMpeg的码率控制

    mediaxyz是一位研究ffmpeg有三年的高人了,这几天一直在折腾ffmpeg中的x264,就是不知道该如何控制码率,主要是参数太多,也不知道该如何设置,在google上search了一下,这方面 ...

  6. ACCESS --第一章

    一.ACCESS2007的安装 装完整版的office2007办公软件就集成了相应的ACCESS2007 二.主要组成 ACCESS由表.查询.报表.窗体.页.宏和模块组成 1.表 表是存储数据的对象 ...

  7. 数据结构《20》----Immutable stack

    有趣的函数式数据结构<一>----不可变栈 什么是不可变?往栈中插入一个元素,原来的栈保持不变,返回一个新的栈(已插入新的元素). push, pop,getMax 等操作都要求在 常数时 ...

  8. Oracle 导入导出--and一些知识,备忘

    这两天在做迁移Ora数据库,有一个圆友帮忙,哈哈,两个臭皮匠顶半个诸葛亮. 本来以为很简单的就imp和exp就欧了,结果各种状况百出,百度了老多,学到好多东西. 你的导出:exp yc/yc@orcl ...

  9. asp.net页面事件执行顺序

    转自http://www.cnblogs.com/hnlyh/articles/4230388.html C#代码 using System; using System.Data; using Sys ...

  10. Eclipse+Python+Selenium自动化测试框架搭建

    1.下载Eclipse:http://www.eclipse.org/downloads/ 2.下载JDK:http://www.oracle.com/technetwork/java/javaee/ ...