首页
学习
活动
专区
工具
TVP
发布

吉林乌拉

专栏成员
113
文章
108849
阅读量
23
订阅数
Spring使用注解声明事务
在上一篇中我们已经简单的介绍了用xml的方式声明事务,spring中除了上述方式外,还可以直接使用注解的方式管理事务,也就是通过@Transactional注解对需要的事务进行事务管理的。@Transactional注解可以对类或者方法进行标注。下面我们使用测试用例来演示@Transactional注解的具体使用。
吉林乌拉
2019-09-19
5630
Spring中事务的传播行为
当我们在spring中调用Service中一个方法时,如果我们默认配置了对Service的事务管理,那么此时的Service将运行在一个由spring管理的事务环境中。由于在我们日常的开发时,通常会在一个Service接口中调用其它Service中的接口以此来完成一个完整的事务操作,这时就会发生服务接口嵌套调用的情况,spring通过事务传播行为控制当前事务如何传播到被嵌套调用的目标服务接口方法中的。下面我们想想了解一下在spring中都有哪些不同的事务传播行为,以前它们的区别。
吉林乌拉
2019-09-17
1.2K0
Spring对事务的支持
上几篇中我们主要介绍了有关数据库事务相关的知识,在这一篇中,我们将重点了解一下,在spring中是怎么对事务进行支持的。在其它的文章中我们知道spring DAO为了支持不同的持久化技术,于是提供了模板类的方式使之支持不同的持久化技术,那么spring的事务管理也是一样的,它也是采用了这种方式,于是就提供了 TransactionTemplate模板类。在spring中我们可以使用TransactionTemplate模板类,及事务回调TransactionCallback就可以通过编码的方式实现事务管理,并且无须关注资源获取、释放、事务同步和异常处理等操作。
吉林乌拉
2019-09-17
5340
数据库事务管理
在日常的软件开发中除了需要考虑软件性能指标外,还需要特别考虑的地方就是软件的安全性了,提到安全性,那我们就不得不考虑事务管理。也就是在同一个事务下,对数据库的操作要么全成功提交,只要有一个失败,那么已经更新的数据也必须回滚。在spring中使用事务比较简单,因为spring中不但提供了和底层事务无关的事务对象,还提供了声明性事务的功能,目的是让程序从事务代码中解耦,方便我们随时随地的添加事务。
吉林乌拉
2019-09-12
5970
@Aspect注解的详细说明
spring中支持9种@Aspect注解的函数,它们表示用不同的方式描述目标类的连接点,它们主要分别4种类型:
吉林乌拉
2019-09-10
3.6K0
@Aspect注解
在这篇中我们将通过@Aspect注解来创建一个切面,以此来演示@Aspect注解的基本使用。
吉林乌拉
2019-09-08
1.4K0
Spring中的环绕增强
通过前置增强和后置增强可以很方便的在目标方法的前后添加横切的逻辑,实际上spring还为我们提供了环绕增强,这种增强的功能就是会在目标方法的前后添加横切逻辑。下面我们通过环绕增强来实现上2篇文章中实现的功能。
吉林乌拉
2019-08-30
1.1K0
Spring中的切面
我们在使用增强时知道,横切逻辑会添加到目标类的所有方法中,无论是方法前还是方法后。而有时,我们只想将增强添加到我们需要添加的方法中,例如添加事物管理的增强。这时我们就要使用切点来完成这种需求了。在spring中可以通过Pointcut接口描述切点。Pointcut接口由两部分组成,它们分别是ClassFilter和MethodMatcher构成。顾名思义,看名称我们知道前者是定位到某些特定的类上的,而后者是定位到某些特定的方法上的。正是因为如此,切点才可以定位到某些类的某些具体方法。
吉林乌拉
2019-08-28
4440
Spring框架中的后置增强AfterReturningAdvice
在上一篇中我们了解了前置增强的使用,在这一篇中我们看一下后置增强的具体使用。由于之前的文章中已经做了详细的说明,这里就不在做过多的介绍了,我们直接看下面的事例。
吉林乌拉
2019-08-21
8110
Spring框架中前置增强
在上一篇中我们已经通过了动态代理技术实现了简单的AOP功能,但是如果我们细心观察就会发现,通过上一篇中的方式实现有,几点明显需要改进的地方,它们分别是:
吉林乌拉
2019-08-19
6440
Spring Boot入门篇
很长时间不写博客了,究其原因则是这几个月工作及生活都发生了很多事情,导致不得分心处理这些。最近难得忙里偷闲,决定还是继续更新吧。毕竟一件事情做久了,如果突然中断,心中难免有些遗憾。由于博客之前更新的内容均是Redis相关的,本打算继续把后续的Redis内容更新出来,但无奈因为这段时间的中断,发现Redis的思路已经断了,所以决定还是很把Redis放一放吧,沉淀一段时间之后,在将后续的内容补充上。
吉林乌拉
2019-08-15
7380
什么是spring
从这一篇开始,我们将学习spring框架的知识,spring无疑是现在Java开发框架最火爆的开源框架之一。正是因为spring是开源的框架,所以我们可以很容易的下载它的源码来分析spring框架的底层设计。spring框架的源码地址为https://github.com/spring-projects/spring-framework。如果我们查看spring框架的源码就会发现spring框架的底层实现设计的非常巧妙,在源码里面使用了大量的设计模式。如果我们不但能够掌握spring框架的基本使用,还能了解底层的具体实现,那么不但在我们使用spring框架时得心应手,还能提高我们对设计模式的理解与使用。所以做为一个Java开发人员 ,学习spring框架是很重要的。
吉林乌拉
2019-08-14
5200
Spring框架中的WebApplicationContext接口
这一篇我们介绍一下WebApplicationContext接口的知识,看WebApplicationContext接口的名字我们应该可以得知,这个接口就是专门为Web应用准备的,它允许从Web根目录的路径中装载配置文件并完成初始化工作。我们可以从WebApplicationContext接口中获取到ServletContext的引用。我们可以通过WebApplicationContextUtils工具类获取到WebApplicationContext接口的实例。除此之外,在WebApplicationContext接口中还对对象新增了3个新的作用域,它们分别是:request、session、global session。而在非Web应用中对象只有2个作用域,也就是singleton和prototype。
吉林乌拉
2019-08-14
1.2K0
Spring框架中的国际化支持
我们在开发项目时,常常会需要支持多国语言,这时就会要求我们的程序支持国际化,也就是可以根据客户端系统的语言类型显示相应的文案与界面。在spring中可以很方便的开发出支持国际化的Web项目。除了spring为我们开发国际化提供了支持,在java中也为我们提供了相应的API。例如java.util.Locale类。Locale类是表示语言和国家/地区信息的本地化类,也就是通过语言和国家或地区,来确定该系统的国际化版本。这时可能有人会想为什么要通过两个参数来确定,单纯的通过语言确定不了吗?答案当然是不能的。例如我们知道,美国和英国的母语都是英语,所以这两个国家的语言类型都是英语类型,在Locale类中用cn表示。既然它们的语言类型是一样的,所以我们并不能通过一个参数来确定。下面是一些国家的语言代码和国家或地区的代号。
吉林乌拉
2019-08-14
1K0
IOC容器-构造函数注入、属性注入、接口注入
今天我们详细了解一下spring框架中IOC的作用。IOC的英文名叫Inverse of Control,中文名叫控制反转也可以叫依赖注入,是spring容器的内核。AOP、事务等功能都依赖于此技术。IoC说白了,就是将对象与对象之间的依赖关系从代码中转移到spring的配置文件中,从而由spring进行对象声明周期的管理。这样的好处就是降低了对象与对象之间的依赖。IoC的工作原理就是利用Java的反射功能实例化对象与对象的依赖。除此之外,IoC容器还提供了对象的实例缓存、生命周期管理、对象实例代理、事件发布、资源装载等高级功能。
吉林乌拉
2019-08-14
4.4K0
Spring框架中AOP技术
在上几篇中本人基本已经将IOC容器涉及到的知识全部介绍完了,从今天起我们学习一下spring中的另一个非常重要的技术AOP。AOP并不是spring中所独创的技术,因为AOP可以理解为是一种编程思想,例如OOP(面向对象编程)一样。只是最近它才被作为一项技术真正的用于软件开发中的。那么到底什么是AOP呢?AOP的全称为Aspect Oriented Programing。看翻译我们基本就可以猜出AOP的名字了,也就就是我们常常听说的面象切面编程。我们通过下面的例子来展示AOP到底能够解决我的方法中的什么问题?
吉林乌拉
2019-08-14
4790
Spring框架中动态代理
在上一篇中我们已经介绍了AOP相关的知识,并且了解了spring是通过动态代理的方式实现AOP逻辑的。在spring中动态代理也分为两种一种是JDK动态代理,一种是CGLib动态代理。下面我们看一下这两种动态代理的区别。我们首先看一下在没有动态代理时,添加事物的的逻辑处理,也就上一篇中的事例。
吉林乌拉
2019-08-14
1.7K0
IOC容器-实现原理反射
在上一篇中我们通过spring的IOC容器,成功实例化了我们指定的对象,在这一篇中我们将简单了解一下spring底层到底是怎么实现上述功能呢。也就是Java中反射技术。由于反射技术是Java API中提供的功能,所以在这里我们不在做过多的介绍,而是通过测试用例,来了解一下反射技术的具体应用。
吉林乌拉
2019-08-13
9950
Spring框架中ResourcePatternResolver接口
在上一篇中我们介绍了Resource接口,它的出现是为了解决spring方便访问各种配置信息。但Resource接口有一个问题,就是如果我们要访问同一个路径下的所有符合条件的配置,如果用Resource接口则会比较麻烦,因为它不支持通配符方式的文件读取,所以要将读取的配置文件名称全部写出来才可以。spring为了解决这个问题,于是新定义了一个新接口,并实现了该接口特有的特性,也就是支持类似Ant风格的通配符。下面我们看一下该接口的具体使用。
吉林乌拉
2019-08-13
3.1K0
Spring框架中ApplicationContext接口
我们知道BeanFactory接口是给spring框架用的,而ApplicationContext接口才是给我们开发者使用的。所以ApplicationContext接口提供了很多我们日常开发时所需要的功能。我们下面看一下ApplicationContext接口主要都包括哪些功能。
吉林乌拉
2019-08-13
7330
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档