Spring——(七)事务管理

2018-11-06 13:59:00

一、摘要通过例子说明:去ATM机取1000块钱,大体有两个步骤:第一步输入密码金额,银行卡扣掉1000元钱;第二步从ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。如何保证这两个步骤不会出现一个出现异常了,而另一个执行成功呢?事务就是用来解决这样的问题。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。 在企业级应用程序开发中,事务管理是必不可少的技术,用来确保数据的完整性和一致性。二、编程式事务处理实现转账1.配置pom.xml文件引入需要的jar包,新增如下代码: <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>

Spring——(六)注解方式AOP

2018-11-05 08:23:00

一、摘要本篇博客使用上一篇博客的源代码,对上一篇博客进行改造:Spring——(四)AOP面向切面注解方式核心业务功能注解方式周边功能(切面)注解方式测试二、注解方式AOP1.使用@Component注解Student类@Component表示这是一个bean,由Spring进行管理。代码如下:package service; import org.springframework.stereotype.Component; /** * @author bounds * 定义一个核心功能 */ @Component("student") public class Student { /** * 赛跑 */ public void run(String name){ System.out.println(name+"参加100米赛跑。。。"); } } 2.@Aspect注解AsptectTest类表示这是一个切面@Around(value="execution(* service.Student.*(..))")表示对Student类中的所有方法定义为切面。代码如下:package

Spring——(五)AOP面向切面

2018-11-02 02:53:00

一、概念AOP 即Aspect Oriented Program面向切面编程在面向切面编程的思想里面,把功能分为核心业务功能和周边功能 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务。所谓的周边功能,比如性能统计,日志,事务管理等等周边功能在AOP思想里,定义为切面(Aspect)在面向切面编程AOP的思想里面,核心业务功能和周边功能分别独立开发然后把切面功能和核心业务功能 编织在一起,这就叫AOP二、Aspect的前置、最终通知新建SpringTest03项目,在service包下新建一个核心业务Student类注明其主要功能。代码如下:package service; /** * @author bounds * 定义一个核心功能 */ public class Student { /** * 赛跑 */ public void run(String name){ System.out.println(name+"参加100米赛跑。。。"); } } 2.继续在service包下新建一个切面Aspect类定义其主要功能,代码如下:package service; /** * @author bounds

Spring——(四)注解方式 IOC/DI

2018-10-29 01:45:00

一、摘要前面讲解IOC DI都是通过xml文件进行配置的,这种配置对小型项目是看不出什么问题,但是在大型项目上,就会觉得配置xml文件臃肿又麻烦了。因此,不再推荐使用xml的方式去装配Bean而是考虑使用注解的方式去装配Bean两种注解配置:自动装配:对注入对象行为的注解组件扫描:对Bean的注解二、自动装配 导入上一篇博客Spring——(二)IOC控制反转/DI依赖注入的源代码作为这篇博客的继续 修改xml配置文件,在xml配置文件中加上<context:annotation-config/>并且注释掉DI对象注入,如下配置:在Student实体类中的private Teacher teacher;前加上@Autowired注解,代码如下:package entity; import org.springframework.beans.factory.annotation.Autowired; public class Student { private int id; private String name; @Autowired private

Spring——(三)生命周期

2018-10-27 23:38:00

一、摘要Spring容器生命周期BeanFactory类ApplicationContext类二、Spring生命周期1.创建SpringTest02工程,在service包下新建HelloSpring类,如下代码: package service; public class HelloSpring { public HelloSpring() { System.out.println("构造方法。。。"); } // 定义初始化方法 public void init() { System.out.println("init..."); } public void hello() { System.out.println("hello..."); } // 定义销毁方法 public void destory() { System.out.println("destory..."); } } 2.配置application-config.xml文件,代码如下: <?xml version="1.0" encoding=