浅谈spring中AOP以及spring中AOP的注解方式
AOP(Aspect Oriented Programming):AOP的专业术语是"面向切面编程" 什么是面向切面编程,我的理解就是:在不修改源代码的情况下增强功能.好了,下面在讲述aop注解方式的情况下顺便会提到这一点.
一、搭建aop注解方式的环境(导入以下的包)

二、实现
环境搭建好了之后,就创建项目。
1.创建接口类(CustomerDao)并添加两个方法

2.接口类创建好了后,自然是要new一个实现类(CustomerDaoImpl)并实现接口中的方法

3.以上基础工作做完后,我们要用到springIOC的思想,将customerDaoImpl类交给spring管理
在src目录下创建名为 applicationContext.xml 的xml文件
bean是一个spring中的标签对, 你可以理解为一个小物品,id就是你取的名字,但是一般都是类名然后首字母小写, class中添加的是类的全路径
开启自动注解/代理:只有开启了自动代理 ,我们接下来所编写的注解才有真正的应用

4.环境和基础类都编写完成,接下来可以创建一个Demo类用于实现

首先我们需要将存在spring容器中的CustomerDaoImpl类拿出来
代码''1'和'2'就是做这个事情的。
'1'中顾名思义,你得告诉它从哪里拿,所以要给一个路径
'2'中就是注解的方式,叫依赖注入:将xml文件中早就写好的类注入给字段customerDao,@Resource中的name就是指之前bean中的id值
接下来就是测试了(需要添加代码'3''4'),编写一个run1()在方法上添加@Test,测试的时候双击方法名选中后右键选择在junit上运行,这就是单元测试了,很方便。
有了前面的铺垫后,执行了run1方法后就可以显示实现类中的两行输出了
三、aop切面类
1.创建切面类MyAspectAnno.java(在配置文件中添加一个bean,继续交给spring管理)

2.添加需要增强的功能方法

value中的代码是表达式, public 后的*是指任何类型的返回值都可以, save()是指在哪里增强或者说在哪里添加功能,这些代码写完后就是指 在save()执行后会执行 注解@After下的方法,即after() 这就是增强了
但是当我们多写几个通知(环绕通知,前置通知等等)每次都要添加表达式的代码,复制粘贴也很麻烦,这里我们可以添加一个切入点,实现如下:

以后我们只需要这样做就行了,下面添加了一个环绕通知:

value值不再是很长的表达式了,也方便以后的维护

上图已经很明确的说明了我们成功实现了功能的增强,利用aop思想并用注解的方式(我们所添加的通知分别在切入点(save())的之后和环绕着执行了)
浅谈spring中AOP以及spring中AOP的注解方式的更多相关文章
- 【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- 浅谈WebService之JAX-RS与spring整合
背景:首先谈一下webservice: 1.Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序, 可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发 ...
- 浅谈服务架构“五脏六腑”之Spring Cloud
本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性:二是服务架构的基本组成.为什么第一节写服务架构而不 ...
- 浅谈Mybatis持久化框架在Spring、SSM、SpringBoot整合的演进及简化过程
前言 最近开始了SpringBoot相关知识的学习,作为为目前比较流行.用的比较广的Spring框架,是每一个Java学习者及从业者都会接触到一个知识点.作为Spring框架项目,肯定少不了与数据库持 ...
- SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP
AOP(Aspect Oriented Programming),是面向切面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP之所以能得到广泛应用,主要是因为它将应用系统拆分分了2个部分 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring声明式事务管理(基于Annotation注解方式实现)
在 Spring 中,除了使用基于 XML 的方式可以实现声明式事务管理以外,还可以通过 Annotation 注解的方式实现声明式事务管理. 使用 Annotation 的方式非常简单,只需要在项目 ...
- Spring学习5-Spring整合JDBC及其事务处理(注解方式)
一.整合的步骤 1.步骤一:首先要获得DataSource连接池(推荐使用B方式): 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是 ...
- spring实战四之Bean的自动装配(注解方式)
使用注解装配: 从spring2.5开始,Spring启用了使用注解自动装配Bean的属性,使用注解方式自动装配与在XML中使用 autowire 属性自动装配并没有太大区别,但是使用注解方式允许更细 ...
- Spring框架学习(6)使用ioc注解方式配置bean
内容源自:使用ioc注解方式配置bean context层 : 上下文环境/容器环境 applicationContext.xml 1 ioc注解功能 注解 简化xml文件配置 如 hibernate ...
- 浅谈jpa、hibernate与spring data jpa三者之间的关系
1.解释hibernate之前先了解下什么是orm,orm是object relation mapping,即对象关系映射,object可以理解成java实体类Entity,relation是关系型数 ...
随机推荐
- QEMU KVM Libvirt手册(5) – snapshots
前面讲了QEMU的qcow2格式的internal snapshot和external snapshot,这都是虚拟机文件格式的功能. 这是文件级别的. 还可以是文件系统级别的,比如很多文件系统支持s ...
- C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站
简介Internet Explorer对象模型 1.属性 属性 类型 描述 Application Object 返回对Internet Explorer对象的引用. Busy Boolean 返回一 ...
- 酷炫,用Html5/CSS实现文字阴影
前两天有一个学html5前端小美女问我一个有关文字阴影的效果怎么去实现.她和我说文字阴影嘛,她也知道text-shadow,.但是却做不出想要的样子,其实css3的新功能是很强大的,不要把你的思想太过 ...
- HBase体系架构和集群安装
大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...
- 每天学点SpringCloud(二):服务注册与发现Eureka
相信看过 每天学点SpringCloud(一):简单服务提供者消费者调用的同学都发现了,在最后消费者调用提供者的时候把提供者的地址硬编码在了代码中,这样的方式肯定是不行的,今天,我们就是要Eureka ...
- 把ajax包装成promise的形式(1)
概述 为了体验promise的原理,我打算自己把ajax包装成promise的形式.主要希望实现下列功能: // 1.使用success和error进行链式调用,并且可以在后面加上无限个 promis ...
- soul开源网关项目搭建学习
1. soul开源网关项目搭建学习 1.1. 地址 https://gitee.com/shuaiqiyu/soul 1.2. 介绍 官方介绍:这是一个异步的,高性能的,跨语言的,响应式的API网关. ...
- Cloud-Platform部署学习
1. Cloud-Platform部署学习 1.1. 介绍 Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,核心技术采用Spring Boot2以及Spring C ...
- SpringMVC FistMVC详解
实现一个简单的SpringMVC框架的配置 1.依赖 这是mybatis+spring+现在需要的依赖 <dependency> <groupId>junit</grou ...
- [EXP]windows全版本SMB溢出工具加强版
工具:k8加强版zzz 编译:python 漏洞:MS17-010 用法: zzz_exploit.exe 192.11.22.82zzz_exploit.exe 192.11.22.82 exe参数 ...