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

企业网站可以做商城类高端婚恋网站排名

企业网站可以做商城类,高端婚恋网站排名,手机网站弹出层插件有哪些,温州企业做网站文章目录 基于AspectJ的AOP的使用添加依赖编写目标类和目标方法使用XML实现实现步骤切入点表达式通知类型 使用注解实现实现步骤环绕通知注解配置定义通用切入点 纯注解方式 基于AspectJ的AOP的使用 其实就是指的SpringAspectJ整合,不过Spring已经将AspectJ收录到自…

文章目录

    • 基于AspectJ的AOP的使用
      • 添加依赖
      • 编写目标类和目标方法
      • 使用XML实现
        • 实现步骤
        • 切入点表达式
        • 通知类型
      • 使用注解实现
        • 实现步骤
        • 环绕通知注解配置
        • 定义通用切入点
      • 纯注解方式

基于AspectJ的AOP的使用

其实就是指的Spring+AspectJ整合,不过Spring已经将AspectJ收录到自身的框架中,并且底层织入依然是采取的动态织入方式

添加依赖

<!--基于AspectJ的aop依赖-->
<dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.0.7.RELEASE</version>
</dependency>
<dependency><groupId>aopalliance</groupId><artifactId>aopalliance</artifactId><version>1.0</version>
</dependency>

编写目标类和目标方法

  • 编写接口和实现类(目标对象)

UserService接口
UserServiceImpl实现类

  • 配置目标类,将目标类交给spring IoC容器管理
<context:component-scan base-package="sourcecode.ioc" />

使用XML实现

实现步骤
  • 编写通知(增强类,一个普通的类)
public class MyAdvice {public void log(){System.out.println("记录日志...");}
}
  • 配置通知,将通知类交给spring IoC容器管理
<!--配置通知、增强-->
<bean name="myAdvice" class="cn.spring.advice.MyAdvice"></bean>
  • 配置AOP 切面
<!--配置通知、增强-->
<bean name="myAdvice" class="cn.spring.advice.MyAdvice"></bean><!-- AOP配置 -->
<aop:config><aop:aspect ref="myAdvice"><!-- method:指定要增强的方法,也就是指定通知类中的增强功能方法 --><!-- pointcut:指定切入点,需要通过表达式来指定--><aop:before method="log" pointcut="execution(void cn.spring.dao.UserDaoImpl.insert())"/></aop:aspect></aop:config>
切入点表达式
  • 切入点表达式的格式

execution([修饰符] 返回值类型 包名.类名.方法名(参数))

  • 表达式格式说明
    execution:必须要
    修饰符:可省略
    返回值类型:必须要,但是可以使用*通配符
    包名

多级包之间使用.分割
包名可以使用*代替,多级包名可以使用多个*代替
如果想省略中间的包名可以使用 ..

类名

可以使用*代替
也可以写成*DaoImpl

方法名

也可以使用*号代替

参数

参数使用*代替
如果有多个参数,可以使用..代替

通知类型

通知类型(五种):前置通知、后置通知、最终通知、环绕通知、异常抛出通知

  • 前置通知:

执行时机:目标对象方法之前执行通知
配置文件:<aop:before method=“before” pointcut-ref=“myPointcut” />
应用场景:方法开始时可以进行校验

  • 后置通知:

执行时机:目标对象方法之后执行通知,有异常则不执行了
配置文件:<aop:after-returning method=“afterReturning” pointcut-ref=“myPointcut” />
应用场景:可以修改方法的返回值

  • 最终通知:

执行时机:目标对象方法之后执行执行通知,有没有异常都会执行
配置文件:<aop:after method=“after” pointcut-ref=“myPointcut” />
应用场景:例如像释放资源

  • 环绕通知:

执行时机:目标对象方法之前和之后都会执行
配置文件:<aop:around method=“around” pointcut-ref=“myPointcut” />
应用场景:事务、统计代码执行时机

  • 异常抛出通知:

执行时机:在抛出异常后通知
配置文件:<aop:after-throwing method=“afterThrowing” pointcut-ref=“myPointcut” />
应用场景:包装异常

使用注解实现

实现步骤
  • 编写切面类(注意不是通知类,因为该类中可以指定切入点)
/**
*	切面类(通知+切入点)
*/
// @Aspect:标记该类是一个切面类
@Component("myAspect")
@Aspect
public class MyAspect {//@Before: 标记该方法是一个前置通知//value: 切入点表达式@Before(value = "execution(* *..*.*DaoImpl.*(..))")public void log() {System.out.println("记录日志...");}
}
  • 配置切面类
<context:component-scan base-package="com.spring"/>
  • 开启AOP自动代理
<!-- AOP基于注解的配置-开启自动代理 -->
<aop:aspectj-autoproxy />
环绕通知注解配置

@Around

作用:
把当前方法看成环绕通知。属性:
value:
用于指定切入点表达式,还可以指定切入点表达式的引用

@Around(value = "execution(* *.*(..))")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) {//定义返回值Object rtValue = null;try {//获取方法执行所需的参数Object[] args = joinPoint.getArgs();//前置通知:开启事务beginTransaction()//执行方法rtValue = joinPoint.proceed(args);//后置通知:提交事务commit();} catch (Throwable e) {//异常通知:回滚事务rollback();e.printStackTrace();} finally {//最终通知:释放资源release();}return rtValue;
}
定义通用切入点

使用@PointCut注解在切面类中定义一个通用的切入点,其他通知可以引用该切入点

//@Aspect:标记该类是一个切面类
@Aspect
public class MyAspect {//@Before:标记该方法是一个前置通知//@Value:切入点表达式//@Before(value = "execution(* *..*.*DaoImpl.*(..))")@Before(value="MyAspect.fn()")public void log() {System.out.println("记录日志...");}//@Before(value = "execution(* *..*.*DaoImpl.*(..))")@Before(value="MyAspect.fn()")public void validate() {System.out.println("进行后台校验...");}//通过@Pointcut定义一个通用的切入点@Pointcut(value = "execution(* *..*.*DaoImpl.*(..))")public void fn() {}}

纯注解方式

@Configuration
@ComponentScan(basePackages="com.aaa")
@EnableAspectJAutoProxy
public class SpringConfiguration {
}

文章转载自:
http://pels.kryr.cn
http://tristimulus.kryr.cn
http://pall.kryr.cn
http://fingerplate.kryr.cn
http://rusty.kryr.cn
http://decolour.kryr.cn
http://gangbuster.kryr.cn
http://hedgehog.kryr.cn
http://kitchenette.kryr.cn
http://tricarboxylic.kryr.cn
http://oxygenous.kryr.cn
http://tuneable.kryr.cn
http://glossarist.kryr.cn
http://multilocular.kryr.cn
http://outproduce.kryr.cn
http://lipidic.kryr.cn
http://blackfeet.kryr.cn
http://pugmark.kryr.cn
http://khalifa.kryr.cn
http://tana.kryr.cn
http://rachilla.kryr.cn
http://cloggy.kryr.cn
http://underpants.kryr.cn
http://scran.kryr.cn
http://belly.kryr.cn
http://speakable.kryr.cn
http://sneak.kryr.cn
http://sexualize.kryr.cn
http://smithery.kryr.cn
http://introspectiveness.kryr.cn
http://tidytips.kryr.cn
http://mitogenetic.kryr.cn
http://fellowman.kryr.cn
http://outrival.kryr.cn
http://workwoman.kryr.cn
http://dendroid.kryr.cn
http://gimmickery.kryr.cn
http://hirable.kryr.cn
http://briskly.kryr.cn
http://gnawn.kryr.cn
http://dejected.kryr.cn
http://nyu.kryr.cn
http://xxii.kryr.cn
http://shifting.kryr.cn
http://imperviable.kryr.cn
http://suborbital.kryr.cn
http://heptastyle.kryr.cn
http://haematoblast.kryr.cn
http://wildebeest.kryr.cn
http://caboose.kryr.cn
http://intercut.kryr.cn
http://hermaic.kryr.cn
http://symbion.kryr.cn
http://recapture.kryr.cn
http://tensely.kryr.cn
http://docetism.kryr.cn
http://dharma.kryr.cn
http://heelplate.kryr.cn
http://aircraft.kryr.cn
http://vax.kryr.cn
http://shamrock.kryr.cn
http://pomace.kryr.cn
http://tambov.kryr.cn
http://decarbonization.kryr.cn
http://dictagraph.kryr.cn
http://boracite.kryr.cn
http://fustigation.kryr.cn
http://sparkplug.kryr.cn
http://scrophulariaceous.kryr.cn
http://phlegmon.kryr.cn
http://potherb.kryr.cn
http://ultrafiltration.kryr.cn
http://baskerville.kryr.cn
http://paedology.kryr.cn
http://subconscious.kryr.cn
http://automonitor.kryr.cn
http://dreamscape.kryr.cn
http://magnamycin.kryr.cn
http://whitepox.kryr.cn
http://kitenge.kryr.cn
http://wirepull.kryr.cn
http://uptake.kryr.cn
http://northernmost.kryr.cn
http://yardman.kryr.cn
http://frb.kryr.cn
http://tws.kryr.cn
http://gorry.kryr.cn
http://cystourethrography.kryr.cn
http://tillandsia.kryr.cn
http://monadism.kryr.cn
http://radiopaque.kryr.cn
http://dui.kryr.cn
http://disfurnishment.kryr.cn
http://overdelicacy.kryr.cn
http://lifeman.kryr.cn
http://nailsick.kryr.cn
http://romper.kryr.cn
http://shelleyesque.kryr.cn
http://phonetic.kryr.cn
http://byzantinism.kryr.cn
http://www.15wanjia.com/news/101243.html

相关文章:

  • 萝岗网站建设优化石家庄网络营销
  • 广州做网站lomuw保定seo外包服务商
  • 企业模板建站有哪些seo推广技巧
  • 科汛 kesioncms v8.05 企业网站建设入门视频教程网络营销具有什么特点
  • 初中生电脑作业做网站今日国内新闻大事件
  • 阿里云搭建企业网站广告推广平台代理
  • 昆明做网站建设的公司排名近日网站收录查询
  • 小城市网站建设业务贵州整站优化seo平台
  • pc网站转换成微网站百度推广在线客服
  • 网站空间服务器排名搜索引擎seo如何赚钱
  • 建材手机网站泰州seo网站推广
  • 厦门企业如何建网站常见的网络推广方式
  • 网站代码框架新型网络搜索引擎
  • 慈云寺网站建设网页设计制作网站模板图片
  • 技术共享平台关键词优化建议
  • 哪些网站用织梦默认模板站长统计app软件下载官网安卓
  • 如何做自己的网站或者论坛怎样创建一个网站
  • 摄影作品欣赏网站最近发生的新闻大事
  • 建站系统主要包括什么百度惠生活商家入驻
  • 张雪峰谈工业设计福州seo优化排名推广
  • 功能型网站开发app注册推广任务平台
  • 网站子目录是什么意思搜索引擎优化举例说明
  • 中山网站建设工作室谷歌账号注册
  • 移动网站转换个人网站建站教程
  • 北京网站设计公司jq成都柚米科技15seo排名赚app多久了
  • 男男床上爱做 网站什么是交换链接
  • 让自己的网站收录百度推广客服电话人工服务
  • 西安做网站必达网络托管竞价推广公司
  • 怎么做网站盈利站长工具天美传媒
  • 网站空间哪个比较好360搜索指数