国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

javaee spring aop 注解實現(xiàn)

這篇具有很好參考價值的文章主要介紹了javaee spring aop 注解實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

切面類

package com.test.advice;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;

//切面類
@Aspect
public class MyAdvice {

    //定義切點表達(dá)式
    @Pointcut("execution(* com.test.service.impl.*.add(..))")
    public void pc()
    {

    }

    //@Before("execution(* com.test.service.impl.*.add(..))")
    @Before("MyAdvice.pc()")
    //將這個增強方法切入到service層的add方法前
    public void before()
    {
        System.out.println("添加用戶之前");
    }


    //目標(biāo)方法執(zhí)行后(不管是出異常還是成功執(zhí)行)
    @After("MyAdvice.pc()")
    public void after()
    {
        System.out.println("添加用戶之后");
    }

    //環(huán)繞通知,用這個增強代碼替換掉目標(biāo)方法
    @Around("MyAdvice.pc()")
    public void around(ProceedingJoinPoint point) throws Throwable {
        System.out.println("執(zhí)行目標(biāo)方法之前");
        point.proceed(); //放行切點處的方法(目標(biāo)方法)
    }

    //目標(biāo)方法成功執(zhí)行后
    @AfterReturning("MyAdvice.pc()")
    public void afterReturning()
    {
        System.out.println("目標(biāo)方法成功執(zhí)行后");
    }

    //目標(biāo)方法出異常
    @AfterThrowing("MyAdvice.pc()")
    public void afterThrowing()
    {
        System.out.println("目標(biāo)方法出異常以后才執(zhí)行");
    }

}

spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.test" />

    <!-- 創(chuàng)建切面類對象 -->
    <bean id="myAdvice" class="com.test.advice.MyAdvice" />

    <!--開啟自動代理 -->
    <aop:aspectj-autoproxy>

    </aop:aspectj-autoproxy>


</beans>

依賴

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>testSpring07</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>testSpring07 Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!-- Spring -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.18.Release</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.18.Release</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.18.Release</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>4.3.18.Release</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>4.3.18.RELEASE</version>
    </dependency>

    <!-- aop -->
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.10</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aspects</artifactId>
      <version>4.3.18.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>4.3.18.RELEASE</version>
    </dependency>

  </dependencies>

  <build>
    <finalName>testSpring07</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

目標(biāo)類

package com.test.service.impl;

import com.test.service.IUsersService;
import org.springframework.stereotype.Service;

@Service
public class UsersService implements IUsersService {

    @Override
    public void add()  {

        System.out.println("添加用戶...");
    }

    @Override
    public void update() {
        System.out.println("修改用戶...");
    }

    @Override
    public void delete() {
        System.out.println("刪除用戶...");
    }
}

測試類

package com.test.aop;

import com.test.service.IUsersService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestAop {

    @Test
    public void test()
    {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");

        IUsersService usersServiceProxy=  applicationContext.getBean("usersService",IUsersService.class);

        try {
            usersServiceProxy.add();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

測試結(jié)果

javaee spring aop 注解實現(xiàn),Mac開發(fā),java-ee,spring,java文章來源地址http://www.zghlxwxcb.cn/news/detail-696664.html

到了這里,關(guān)于javaee spring aop 注解實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java、Java EE、Spring和Spring Boot核心注解

    文章遷移至個人博客 此頁面包含常用 Java 、 Java EE 、 Spring 、 Spring Boot 、 JPA 常用注解的一站式說明。 @Component注解 @Component 注解表明被注解的類是一個“spring bean/組件”。@Component注解告訴Spring容器自動創(chuàng)建Spring bean。 @Autowired注解 @Autowired 注解用于自動注入 bean。@Autowired 注

    2024年02月15日
    瀏覽(25)
  • Spring 使用注解開發(fā)、代理模式、AOP

    在Spring4之后,要使用注解開發(fā),必須要保證AOP的包導(dǎo)入了 項目搭建: 在配置文件中導(dǎo)入約束,增加注解支持 bean 實體類 @Component 注解 xml配置 測試: 屬性如何注入 衍生的注解 @Component 有幾個衍生的注解,我們在web開發(fā)中,會按照MVC三層架構(gòu)分層 dao層: @Repository 等價于poj

    2024年02月13日
    瀏覽(24)
  • 8.3Java EE——基于XML的AOP實現(xiàn)

    使用AOP代理對象的好處 ????????因為Spring AOP中的代理對象由IoC容器自動生成,所以開發(fā)者無須過多關(guān)注代理對象生成的過程,只需選擇連接點、創(chuàng)建切面、定義切點并在XML文件中添加配置信息即可。 Spring提供了一系列配置Spring AOP的XML元素。 配置Spring AOP的XML元素 元素 描

    2024年02月15日
    瀏覽(19)
  • 【JavaEE】Spring全家桶實現(xiàn)AOP-統(tǒng)一處理

    【JavaEE】Spring全家桶實現(xiàn)AOP-統(tǒng)一處理

    【JavaEE】AOP(2) 在前面的Spring AOP的學(xué)習(xí)之中,Spring AOP去實現(xiàn)AOP,雖然比較靈活,可以實現(xiàn)很多想法,但是也有一些現(xiàn)實的問題: 沒辦法獲取到HttpRequest,一些功能難以實現(xiàn) 進(jìn)而無法獲取HttpSession對象,這樣登錄校驗功能就無法實現(xiàn) 我們要對?部分方法進(jìn)行攔截,而另?部

    2024年02月11日
    瀏覽(22)
  • 注解實現(xiàn)(基于Spring AOP)

    切入點表達(dá)式 Spring AOP 支持的切入點主要有以下幾種: execution:用于匹配方法執(zhí)行的連接點。這是最常用的切入點指示器。你可以指定具體的方法,或者類來匹配。 例如: execution(* com.example.service.*.*(..)) ,這個表達(dá)式表示匹配 com.example.service 包下的所有類的所有方法。 wit

    2024年02月16日
    瀏覽(18)
  • 【Spring】javaBean、依賴注入、面向切面AOP、使用注解開發(fā)

    【Spring】javaBean、依賴注入、面向切面AOP、使用注解開發(fā)

    有一定規(guī)范的Java實體類,類內(nèi)提供了一些公共方法以便外界對該對象的內(nèi)部屬性進(jìn)行操作 所有屬性都是private,所有的屬性都可以通過get/set方法進(jìn)行訪問,同時還需要有一個無參構(gòu)造(默認(rèn)就有) 高內(nèi)聚,低耦合是現(xiàn)代軟件的開發(fā)的設(shè)計模式 之前編寫的圖書管理系統(tǒng)具有高

    2024年02月08日
    瀏覽(57)
  • 【Spring】使用自定義注解方式實現(xiàn)AOP鑒權(quán)

    AOP,是一種面向切面編程,可以通過預(yù)編譯方式和運行期間動態(tài)代理實現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。 在軟件開發(fā)中,鑒權(quán)(Authentication)是一項非常重要的安全措施,用于驗證用戶身份和權(quán)限。在應(yīng)用程序中,我們通常會使用AOP(Aspect-Oriented Programming)來實現(xiàn)鑒權(quán)功能

    2024年02月11日
    瀏覽(20)
  • javaee spring 用注解的方式實現(xiàn)ioc

    spring核心依賴 spring配置文件

    2024年02月10日
    瀏覽(26)
  • 注解、原生Spring、SchemaBased三種方式實現(xiàn)AOP【附詳細(xì)案例】

    注解、原生Spring、SchemaBased三種方式實現(xiàn)AOP【附詳細(xì)案例】

    目錄 一、注解配置AOP 1. 開啟注解支持 2. 在類和方法加入注解 3. 測試 4.??為一個類下的所有方法統(tǒng)一配置切點 二、原生Spring實現(xiàn)AOP 1. 引入依賴 2. 編寫SpringAOP通知類 3. 編寫配置類bean2.xml 4? 測試 三、SchemaBased實現(xiàn)AOP 1. 配置切面 2. 測試 往期專欄文章相關(guān)導(dǎo)讀? 1. Maven系列專欄

    2024年02月08日
    瀏覽(12)
  • Spring Boot學(xué)習(xí)隨筆- 實現(xiàn)AOP(JoinPoint、ProceedingJoinPoint、自定義注解類實現(xiàn)切面)

    Spring Boot學(xué)習(xí)隨筆- 實現(xiàn)AOP(JoinPoint、ProceedingJoinPoint、自定義注解類實現(xiàn)切面)

    學(xué)習(xí)視頻:【編程不良人】2021年SpringBoot最新最全教程 問題 現(xiàn)有業(yè)務(wù)層開發(fā)存在問題 額外功能代碼存在大量冗余 每個方法都需要書寫一遍額外功能代碼不利于項目維護(hù) Spring中的AOP AOP:Aspect 切面 + Oriented 面向 Programmaing 面向切面編程 Aspect(切面) = Advice(通知) + Pointcut(

    2024年02月04日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包