当前位置: 首页 > news >正文

邢台做网站企业什么是网络营销策划

邢台做网站企业,什么是网络营销策划,软件技术买什么笔记本好,设计网站流程包括哪些AOP:面向切面编程,它和OOP(面向对象编程)类似。 AOP组成: 1、切面:定义AOP是针对那个统一的功能的,这个功能就叫做一个切面,比如用户登录功能或方法的统计日志,他们就各种是一个切面。切面是有切点加通知组成的。 2、连接点:所有可…

AOP:面向切面编程,它和OOP(面向对象编程)类似。

AOP组成:

1、切面:定义AOP是针对那个统一的功能的,这个功能就叫做一个切面,比如用户登录功能或方法的统计日志,他们就各种是一个切面。切面是有切点加通知组成的。

2、连接点:所有可能触发AOP(拦截方法的点)就称之为连接点。

3、切点:定义AOP拦截的规则的。

4、通知:规定AOP执行的时机和执行的方法。(前置通知、后置通知、抛出异常之后通知、返回数据之后通知、环绕通知)

Spring AOP的实现步骤:

1.先项目中添加Spring AOP框架支持

2.定义切面

3.定义切点

4.实现通知

步骤1:引入框架支持

步骤2:定义切面

步骤3.定义切点,设置拦截规则(这里Aspect语法下面会介绍)

步骤4.实现通知方法(在什么时机执行什么方法)(这里只列了一种通知方法,下面几种通知都回介绍)

接着上面所说的,这里介绍一下Aspect J的语法:

Aspect J的语法

示例:

execution(<修饰符><返回类型><包.类.⽅法(参数)><异常>) (修饰符和异常可以省略)

修饰符一般省略:

Public 公共方法

* 任意

返回值不能省略:

Void 没有返回值

String 返回值为字符串

* 任意

包:

com.gyf.crm 固定包

com.gyf.crm.*.service crm包下面子包任意

com.gyf.crm.. crm包下面的所有子包(含自己)

com.gyf.crm.*.service.. crm包下面任意子包,固定目录service,service目录任意包

类:

UserServiceDemo 指定类

*Demo 以Demo结尾的类

User* 以User开头的类

* 任意

方法名:

addUser 固定方法

add* 以add开头的方法

*Do 以Do结尾的方法

* 任意

参数:

() 无参

(int) 一个整型

(int,int) 两个参数

(..) 任意参数

示例

execution(* com.cad.demo.User.*(..)) :匹配 User 类⾥的所有⽅法。

execution(* com.cad.demo.User+.*(..)) :匹配该类的⼦类包括该类的所有⽅法。

execution(* com.cad.*.*(..)) :匹配 com.cad 包下的所有类的所有⽅法。

execution(* com.cad..*.*(..)) :匹配 com.cad 包下、⼦孙包下所有类的所有⽅法。

execution(* addUser(String, int)) :匹配 addUser ⽅法,且第⼀个参数类型是 String,第⼆个

参数类型是 int。

Aspect J语法总结:

关于Aspect语法中的通配符:

1、* 表示匹配任意的内容,用在返回值,包名、类名、方法名都可以使用。

2、.. 匹配任意字符,可以使用在方法参数上,如果用在类上需要配合*一起使用。

3、+ 表示匹配指定类及其它底下的所有子类,比如 com.Car+表示匹配 Car及其所有的子类。

如何定义相关通知:

通知定义的是被拦截的⽅法具体要执⾏的业务,⽐如⽤户登录权限验证⽅法就是具体要执⾏的业务。Spring AOP 中,可以在⽅法上使⽤以下注解,会设置⽅法为通知⽅法,在满⾜条件后会通知本⽅法进⾏调⽤:

前置通知使⽤@Before:通知⽅法会在⽬标⽅法调⽤之前执⾏。

后置通知使⽤@After:通知⽅法会在⽬标⽅法返回或者抛出异常后调⽤。

返回之后通知使⽤@AfterReturning:通知⽅法会在⽬标⽅法返回后调⽤。

抛异常后通知使⽤@AfterThrowing:通知⽅法会在⽬标⽅法抛出异常后调⽤。

环绕通知使⽤@Around:通知包裹了被通知的⽅法,在被通知的⽅法通知之前和调⽤之后执⾏⾃定义的⾏为。

具体实现如下:

在没有异常抛出的情况下,我们可以看看他们各自执行的顺序:

在我们手动设置异常后,再看他们的执行顺序:

可以看到,即使有异常抛出了,执行了AfterThrowing方法,但是还是会继续执行完毕。

我们也可以使用环绕通知实现统计每个方法的执行时间,具体实现如下:

注意:我们可以根据joinPoint.getSignature().getDeclaringTypeName()+"."+ joinPoint.getSignature().getName() 得到类的类型和名称,在前面我们new了stopWatch对象,调用了start和stop方法,后面我们在调用stopWatch.getTotalTimeMillis()就可以得到耗费时间了。

Spring AOP的实现原理

Spring AOP ⽀持 JDK Proxy 和 CGLIB ⽅式实现动态代理。默认情况下,实现了接⼝的类,使⽤ AOP 会基于 JDK ⽣成代理类,没有实现接⼝的类,会基于 CGLIB ⽣成代理类。

Spring AOP动态代理实现:

在 class 代码运⾏期,动态的织⼊字节码。主要基于两种方式:

1、JDK Proxy (JDK动态代理)

2、CGLIB Proxy :默认情况下Spring AOP都会采用CGLIB来实现动态代理。

CGLIB来实现动态代理的原理:通过继承代理对象来实现动态代理的(子类拥有父类的所有功能)。缺点:不能代理最终类(也就是被final修饰的类)。

总结:

AOP 是对某⽅⾯能⼒的统⼀实现,它是⼀种实现思想,Spring AOP 是对 AOP 的具体实现,Spring AOP 可通过 @Aspect(注解)的⽅式来实现 AOP 的功能。Spring AOP 是通过动态代理的⽅式,在运⾏期将 AOP 代码织⼊到程序中的,它的实现⽅式有两种: JDK Proxy 和 CGLIB。

http://www.yayakq.cn/news/842451/

相关文章:

  • 网站的建设好处企业营销型网站的内容
  • 网站每个页面都有标题龙岗附近网站开发公司
  • 大连建设银行招聘网站住房与城乡建设部网站打不开
  • 佛山公司建网站怎么做网站策划
  • 张浦专业做网站百度seo和sem
  • 收费网站素材网站建设的岗位名称
  • 轻量应用服务器可以做网站吗wordpress易企秀
  • 南昌网站推广策划Linux主机安装wordpress
  • 网站建设 用户管理东莞专业做网站的公司有哪些
  • 朔州路桥建设有限责任公司网站网站开发费用摊销年限
  • 浙江 网站建设手机网页 模板
  • 贵州省兴义市建设局网站首页深圳住房与建设局网站
  • .net是建网站的吗网站商城建设报告
  • wordpress电影站群深圳网站程序开发制作
  • 网站定制化价格靖江网站制作多少钱
  • 永辉企业微信app下载安装seo咨询推广
  • 软件下载页面制作seo网站管理招聘
  • 建设网站考证做网站的流程前端做什么
  • 做封面网站wordpress 上传文件中文乱码
  • 网站建设公司的会计分录wordpress cdn 谷歌
  • 怎么选择移动网站建设网站上的图片做多大
  • 怎么自己用手机做网站网站建设的第一阶段
  • 搞笑资讯网站源码wordpress站内搜索框
  • 高流量网站设计建站用wordpress
  • 深圳网站建设解决方案产品设计用什么软件好
  • 婚恋网站制作公司做网站的费用怎么做账
  • 网站建设所需资料文山城乡建设部网站首页
  • 个人网站名称请员工信息查询系统
  • 网站导航栏分析网站模块 带采集
  • 网站标题收录网站服务器租赁需要什么手续