免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Spring AOP示例(注解方式)

Spring AOP示例

一.使用Annotation
 1.定義切面
package com.yyj.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class TestAspect {
 
 @Pointcut("execution(* com.yyj.service.*.*(..))")
 public void testPointCut(){
 }
}
注: @Aspect說明該類是個切面,@Component將該bean自動注入到springIOC容器,
 默認id為類名第一個字母轉(zhuǎn)小寫;
 @Pointcut("execution(* com.yyj.service.*.*(..))")定義一個切入點,
 后面的表達式說明對com.yyj.service包及子包下的所有方法進行攔截,植入其它操作,
 其它操作由對應(yīng)的Advise定義。
 2.定義advise
package com.yyj.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class TestAdvise {
 
 @Before("com.yyj.aspect.TestAspect.testPointCut()")
 private void testBefore(){
  System.out.println("begin-----in-----");
  System.out.println("before test...");
  System.out.println("end  -----in-----");
 }
}
注: @Before("com.yyj.aspect.TestAspect.testPointCut()"),定義了testPointCut這個切入點
 要做的操作是在執(zhí)行被切入方法之前先執(zhí)行testBefore方法。
 3.配置
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd
  http://www.springframework.org/schema/jeehttp://www.springframework.org/schema/jee/spring-jee-3.0.xsd
  http://www.springframework.org/schema/langhttp://www.springframework.org/schema/lang/spring-lang-3.0.xsd
  http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  http://www.springframework.org/schema/util 
 <aop:aspectj-autoproxy/>
 <!-- 啟動Spring注解自動注入Bean -->
 <context:component-scan base-package="com.yyj" />
 </beans>
 
 4.定義測試類
package com.yyj.service;
import org.springframework.stereotype.Component;

@Component
public class Testa{
 public void test(){
  System.out.println("test...");
 }
}

import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.yyj.service.Testa;

public class MainTest {

 private static ClassPathXmlApplicationContext springCtx;

 synchronized static void startup() {
  if (springCtx == null) {
   System.out.println("start up...");
   springCtx = new ClassPathXmlApplicationContext();
   springCtx
     .setConfigLocations(new String[] { "applicationContext.xml" });
   springCtx.refresh();
   Testa ta = (Testa)springCtx.getBean("testa");
   ta.test();
   System.out.println("start up...ok");
  }
 }

 public static void main(String[] args) {
  new MainTest().startup();
 }
}

二.不使用Annotation注解也可以如下類似配置
 <aop:aspectj-autoproxy/>
  <!-- 啟動Spring注解 -->
 <context:component-scan base-package="com.yyj" />
 <!--<tx:annotation-driven proxy-target-class="true" />  -->
 <aop:config>
  <aop:aspect ref="myPoint">
   <aop:pointcut expression="execution(* com.yyj.service.FooService.getFoo(..))" id="pointCut"/>
   <aop:before pointcut-ref="pointCut" method="myAroundMethod"/>
  </aop:aspect>
 </aop:config>
注:PointCut和Advise可以在一個類中,也可以分開定義

工程用到j(luò)ar

打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring3.0中的AOP配置方法
Spring Aop實例@Aspect、@Before、@AfterReturning@Around 注解方式配置
9,000+ 字,徹底征服 Spring AOP!
淺析Spring 2.X中AOP的使用
Spring AOP 的@Aspect (轉(zhuǎn))
Spring 3 AOP 概念及完整示例
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服