Spring中的事务控制
在之前的两篇文章《基于XML配置的方式实现Spring中的AOP》和《基于注解的方式实现Spring中的AOP》中我们分别通过XML配置和注解配置的方式实现了自定义的事务控制,其实Spring框架已经为我们提供了事务管理功能。本文将继续使用之前的案例来介绍Spring中的事务控制。
一、Spring事务控制的API在介绍如何使用Spring为我们提供的事务控制之前,我们先来了解一下Spring事务控制的相关API
1、PlatformTransactionManagerPlatformTransactionManager接口提供事务操作的方法,包含有3个具体的操作,下面通过一张表格来说明:
方法名
说明
TransactionStatus getTransaction(TransactionDefinition definition)
获取事务状态信息
void commit(TransactionStatus status)
提交事务
void rollback(TransactionStatus status)
回滚事务
在实际开发中都是使用该接口的实现类, ...
基于注解的方式实现Spring中的AOP
在之前的一篇文章《基于XML配置的方式实现Spring中的AOP》中我们已经介绍了如何基于XML配置文件的方式来配置Spring中的AOP,接下来本文将继续使用之前的案例来介绍如何使用注解的方式来配置Spring中的AOP。
一、准备工作1、导入依赖基于注解的配置与基于XML的配置相同,都需要额外导入以下依赖:
12345<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version></dependency>
2、配置容器配置内容与《AOP概述及Spring中的AOP》一文中的案例配置基本相同,这里不再赘述。
二、基于注解的配置步骤1、将通知类注入到容器中将通知类TransactionManager添加到Spring容器中:
1234567891011121314151617181920212223242526272829 ...
基于XML配置的方式实现Spring中的AOP
在之前的一篇文章《AOP概述及Spring中的AOP》中我们已经介绍了关于Spring AOP的相关概念,接下来这篇文章将继续使用之前的案例来介绍如何通过XML配置文件的方法来配置和使用Spring AOP。
一、准备工作1、导入依赖要想使用Spring AOP的功能,需要添加以下依赖:
12345<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version></dependency>
2、添加约束XML配置文件在之前的基础上需要额外添加xmlns:aop约束:
12345678910111213<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or ...
AOP概述及Spring中的AOP
在之前的几篇文章中我们介绍了Spring框架中的IoC容器,这是Spring框架的核心之一。接下来我们将要介绍Spring框架中另一个核心内容——AOP,本文将介绍什么是AOP、AOP的作用以及Spring框架中AOP的理论内容。
一、AOP概述1、什么是AOPAOP(Aspect Oriented Programming,面向切面编程)是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2、AOP的作用和优势作用:在程序运行期间,不修改代码就可对已有方法进行增强。
AOP有以下几个方面的优势:
减少重复代码
提高开发效率
维护方便
3、AOP的实现方式可使用Java中的动态代理技术实现AOP。
二、AOP的具体应用下面将通过一个具体案例来说明AOP的具体实现方法。
1、案例描述假设有一个账户管理系统,该系统可实现对账户的增删改查 ...
基于注解的方式使用Spring的IoC
在之前的一篇文章《基于XML配置的方式使用Spring的IoC》中介绍了如何通过XML配置文件的方式来使用Spring的IoC,本文将在之前的文章中提到的案例的基础上通过注解方式使用Spring的IoC。
一、基本配置1、导入依赖要想使用Spring的注解功能,还需要导入spring-aop的依赖,不过该依赖已经包含在spring-context依赖中了,因此项目的pom.xml文件的内容与基于XML配置文件方式是相同的:
1234567<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.2.RELEASE</version> </dependency></dependencies>
这里我使用的版本是5.2.2.RELEASE ...
基于XML配置的方式使用Spring的IoC
在之前的一篇文章《IoC概述及Spring中的IoC》中已经介绍了Spring IoC容器的相关概念,本文将通过一个具体案例来介绍如何使用XML配置的方式来使用Spring的IoC容器。
一、前期准备假设有一个账户管理系统,该系统包含了服务层和数据访问层,现在需要使用Spring框架来降低模块之间的耦合度,那么该如何实现这个要求呢?
1、创建工程新建一个Maven工程,并编写服务层接口和实现类以及数据访问层的接口和实现类,代码如下:
(1)数据访问层接口IAccountDao
12345678910111213package cn.frankfang.dao;/** * 数据访问层接口 */public interface IAccountDao { /** * 保存账户 */ void saveAccount();}
(2)数据访问层实现类AccountDaoImpl
1234567891011121314package cn.frankfang.dao.impl;import cn.frankfang.dao.IAccountDao ...
IoC概述及Spring中的IoC
一、程序的耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差(降低耦合性,可以提高其独立性)。耦合性存在于各个领域,而非软件设计中独有的,但是我们只讨论软件工程中的耦合。
1、耦合的定义在软件工程中,耦合指的就是就是模块之间的依赖性。模块之间的耦合越高,维护成本越高。因此模块的设计应使类和构件之间的耦合最小。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准,划分模块的一个准则就是高内聚低耦合。
2、耦合的分类(1)内容耦合当一个模块直接修改或操作另一个模块的数据时,或一个模块不通过正常入口而转入另一个模块时,这样的耦合被称为内容耦合。内容耦合是最高程度的耦合,应该避免使用之。
(2)公共耦合两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合。在具有大量公共耦合的结构中,确定究竟是哪个模块给全局变量赋了一个特定的值是十分困难的。
(3)外部耦合 ...
Spring框架简介
在Java企业级开发,尤其是Web应用的开发中,你一定听说过Spring框架的大名。事实上Spring是使用最多的Java EE企业应用开源框架。那么什么是Spring框架?Spring框架又有哪些优势?本文将会逐一进行介绍。
一、Spring是什么Spring是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Spring是一个轻量级的控制反转(IoC, Inversion of Control)和面向切面编程(AOP, Aspect-Oriented Programming)的容器框架。
轻量:从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的 ...
注解功能概述及基本用法
Java中提供了注解(Annotation)功能,该功能可用于类、构造方法、成员变量、方法、参数等的声明中。该功能并不影响程序的运行,但是会对编译器警告等辅助工具产生影响。本文将介绍注解的概念及如何使用注解,最后将通过两个案例将所学的知识运用到实际开发中。
一、什么是注解?1、注解的定义注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
所谓注解,可以看作是对 一个 类/方法 的一个扩展的模版,每个 类/方法 按照注解类中的规则,来为 类/方法 注解不同的参数,在用到的地方可以得到不同的 类/方法 中注解的各种参数与值。其实说白就是代码里的特殊标志,这些标志可以在编译,类加载,运行时被读取,并执行相应的处理,以便于其他工具补充信息或者进行部署。
2、注解的作用注解主要有以下三种功能:
编写文档:通过代码里标识的元数据生成文档
编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查
代码分析:通过代码 ...
Mybatis简介及入门
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
Mybatis的官方网站为:https://mybatis.org,项目的仓库地址为:https://github.com/mybatis/mybatis-3,可通过访问官网或仓库获取最新版本的 Mybatis。
下面将介绍 Mybatis 的安装和配置。
一、安装安装 Mybatis 有以下两种方法,推荐使用 Maven 导入依赖
1、通过下载JAR可直接从 Mybatis 的 发行版 中下载所需要的版本,然后将下载的JAR置于项目类路径(classpath)中即可。
2、通过Maven导入依赖打开 Maven 项目的pom.xml,添加以下内容:
12345<dependency> <groupId>org.m ...