这篇文章主要讲解了“AOP的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“AOP的原理是什么”吧!
成都创新互联公司是一家集网站建设,宁武企业网站建设,宁武品牌网站建设,网站定制,宁武网站建设报价,网络营销,网络优化,宁武网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
AOP的原理
对哪些对象在什么位置拦截做什么 <=> <aop:before method="before" pointcut-ref="txPointcut" />
哪些对象
<!-- 定义切面,所有的service的所有方法 -->
<aop:pointcut id="txPointcut" expression="execution(* com.masterslave.service.*.*(..))" />
dataSourceAspect 是切面要拦截什么。aop:before就是在拦截对象的前面位置。method="before"就是使用切面中的方法处理拦截
85 <aop:aspect ref="dataSourceAspect" order="-9999">
86 <aop:before method="before" pointcut-ref="txPointcut" />
87 </aop:aspect>
如上是用配置文件配置的
还有方法是直接用注解方式
注解中也说明了,拦截范围@Pointcut,在什么位置@Before,做什么@Aspect,具体拦截对象是谁JoinPoint
@Aspect
public class LoggingAspect {
// @Pointcut("execution(* com.samsung.sdsc.legal..*Impl.*(..)) || execution(* com.samsung.sdsc.legal..*Action.*(..))")
@Pointcut("execution(* com.samsung.sdsc.legal..*Impl.*(..))")
public void serviceMethod() {
}
@Before("serviceMethod()")
public void beforeLogging(JoinPoint thisJoinPoint) {
Class<? extends Object> clazz = thisJoinPoint.getTarget().getClass();
Logger logger = Logger.getLogger(clazz);
String methodName = thisJoinPoint.getSignature().getName();
Object[] arguments = thisJoinPoint.getArgs();
StringBuffer argBuf = new StringBuffer();
StringBuffer argValueBuf = new StringBuffer();
int i = 0;
for (Object argument : arguments) {
String argClassName = "";
if (null == argument) {
argClassName = "Null";
argument = "";
} else {
argClassName = argument.getClass().getSimpleName();
}
if (i > 0) {
argBuf.append(", ");
}
argBuf.append(argClassName + " arg" + ++i);
argValueBuf.append(".arg" + i + " : " + argument.toString() + "\n");
}
if (i == 0) {
argValueBuf.append("No arguments\n");
}
StringBuffer messageBuf = new StringBuffer();
messageBuf.append("before executing " + methodName + "("
+ argBuf.toString() + ") method");
messageBuf
.append("\n-------------------------------------------------------------------------------\n");
messageBuf.append(argValueBuf.toString());
messageBuf
.append("-------------------------------------------------------------------------------");
logger.info(messageBuf);
}
}
感谢各位的阅读,以上就是“AOP的原理是什么”的内容了,经过本文的学习后,相信大家对AOP的原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
网站标题:AOP的原理是什么
文章来源:https://www.cdcxhl.com/article24/gejeje.html
成都网站建设公司_创新互联,为您提供网站导航、品牌网站设计、网站设计公司、营销型网站建设、定制网站、网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联