Spring AOP 為切面引入功能

2021-10-05 01:55:59 字數 1413 閱讀 3107

一、情景

一般情況下,如果現有功能完成編譯後,在不改變原始碼或無法獲取原始碼的情況下,很難再為其新增新的功能,此時spring aop可以為切面新增新的功能。

二、實現

package com.giser.encore;

/** * 增強的功能介面

*/public inte***ce encoreable

package com.giser.encore.impl;

import com.giser.encore.encoreable;

/** * 增強的功能實現類

*/public class defaultencoreable implements encoreable

}

建立切面增強類

package com.giser.encore;

import org.aspectj.lang.annotation.aspect;

import org.aspectj.lang.annotation.declareparents;

@aspect

public class encorealbeintroducer

測試:

package com.giser.aoptest;

import org.junit.test;

import org.junit.runner.runwith;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.test.context.contextconfiguration;

import org.springframework.test.context.junit4.springjunit4classrunner;

import com.giser.aop.performance;

import com.giser.encore.encoreable;

@runwith(springjunit4classrunner.class)

@contextconfiguration(value = )

public class springtest3

}

結果:

silencing cell phones

takeseats

silencing cell phones

takeseats

gis performance

defaultencoreable

可以看到已經有了增強功能。

spring AOP 多個切面

切面 日誌 author w7 public class logger 切面 安全框架 author w7 public class security 切面 許可權 author w7 public class privilege public void setaccess string acces...

spring aop 切面測試

spring 配置 aop 切面類 package com.changhang.urgoo.impl.utils import com.changhang.urgoo.impl.entity.result.mesresult import com.changhang.urgoo.impl.entit...

Spring aop 切面程式設計

package cn.annals.demo.proc.aop import org.aspectj.lang.joinpoint import org.aspectj.lang.proceedingjoinpoint import org.aspectj.lang.annotation.after...