java方法设置切点_java相关:Spring AOP中定义切点的实现方法示例
java相关:Spring AOP中定义切点的实现方法示例
发布于 2020-6-6|
复制链接
摘记: 本文实例讲述了Spring AOP中定义切点的实现方法。分享给大家供大家参考,具体如下:一 配置
```xml
..
本文实例讲述了Spring AOP中定义切点的实现方法。分享给大家供大家参考,具体如下:一 配置
```xml
```
二 切面类SystemArchitecture
```java
package org.crazyit.app.aspect;
import org.aspectj.lang.annotation.*;
@Aspect
public class SystemArchitecture
{
@Pointcut("execution(* org.crazyit.app.service.impl.*.*(..))")
public void myPointcut(){}
}
```
LogAspect
```java
package org.crazyit.app.aspect;
import org.aspectj.lang.annotation.*;
import org.aspectj.lang.*;
@Aspect
public class LogAspect
{
// 直接使用SystemArchitecture切面类的myPointcut()切入点
@AfterReturning(returning="rvt"
, pointcut="SystemArchitecture.myPointcut()")
// 声明rvt时指定的类型会限制目标方法必须返回指定类型的值或没有返回值
// 此处将rvt的类型声明为Object,意味着对目标方法的返回值不加限制
public void log(Object rvt)
{
System.out.println("获取目标方法返回值:" + rvt);
System.out.println("模拟记录日志功能...");
}
}
```
三 接口Hello
```java
package org.crazyit.app.service;
public interface Hello {
// 定义一个简单方法,模拟应用中的业务逻辑方法
void foo();
// 定义一个addUser()方法,模拟应用中的添加用户的方法
int addUser(String name, String pass);
}
```
World
```java
package org.crazyit.app.service;
public interface World {
// 定义一个简单方法,模拟应用中的业务逻辑方法
public void bar();
}
```
四 实现类HelloImpl
```java
package org.crazyit.app.service.impl;
import org.springframework.stereotype.Component;
import org.crazyit.app.service.*;
@Component("hello")
public class HelloImpl implements Hello
{
// 定义一个简单方法,模拟应用中的业务逻辑方法
public void foo()
{
System.out.println("执行Hello组件的foo()方法");
}
// 定义一个addUser()方法,模拟应用中的添加用户的方法
public int addUser(String name , String pass)
{
System.out.println("执行Hello组件的addUser添加用户:" + name);
if(name.length() 10)
{
throw new IllegalArgumentException("name参数的长度必须大于3,小于10!");
}
return 20;
}
}
```
WorldImpl
```java
package org.crazyit.app.service.impl;
import org.springframework.stereotype.Component;
import org.crazyit.app.service.*;
@Component("world")
public class WorldImpl implements World {
// 定义一个简单方法,模拟应用中的业务逻辑方法
public void bar() {
System.out.println("执行World组件的bar()方法");
}
}
```
五 测试类
```java
package lee;
import org.springframework.context.*;
import org.springframework.context.support.*;
import org.crazyit.app.service.*;
public class BeanTest
{
public static void main(String[] args)
{
// 创建Spring容器
ApplicationContext ctx = new
ClassPathXmlApplicationContext("beans.xml");
Hello hello = ctx.getBean("hello" , Hello.class);
hello.foo();
hello.addUser("孙悟空" , "7788");
World world = ctx.getBean("world" , World.class);
world.bar();
}
}
```
六 测试结果
执行Hello组件的foo()方法
获取目标方法返回值:null
模拟记录日志功能...
执行Hello组件的addUser添加用户:孙悟空
获取目标方法返回值:20
模拟记录日志功能...
执行World组件的bar()方法
获取目标方法返回值:null
模拟记录日志功能...
java方法设置切点_java相关:Spring AOP中定义切点的实现方法示例相关推荐
- Spring AOP中定义切点PointCut详解
1.AOP是什么? 软件工程有一个基本原则叫做"关注点分离"(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年 ...
- Spring AOP中定义切点(PointCut)和通知(Advice)
本文讨论一下Spring AOP编程中的两个关键问题,定义切点和定义通知,理解这两个问题能应付大部分AOP场景. 如果你还不熟悉AOP,请先看AOP基本原理,本文的例子也沿用了AOP基本原理中的例子. ...
- Spring AOP中定义切点的详细介绍
AOP的切点定义大部分的人都知道excecution()其实在AOP中有很多关旭切点的参数,用好可这些参数可以让我们的工作事半功倍, 一.excecution() 关于excecution必须要介绍的 ...
- java切点配置_Spring AOP中定义切点的实现方法示例
本文实例讲述了Spring AOP中定义切点的实现方法.分享给大家供大家参考,具体如下: 一 配置 xmlns:xsi="http://www.w3.org/2001/XMLSchema-i ...
- Spring AOP 中的切点是什么?如何定义切点?
Spring AOP 中的切点是什么?如何定义切点? 什么是切点? 在 Spring AOP 中,切点(Pointcut)是指一组连接点(Join Point)的集合.连接点是程序执行过程中的某个特定 ...
- Spring AOP中pointcut 切点详解
Spring AOP中pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的. Pointcut可以有下列方 ...
- java邮件模板代码_Java的Spring框架中实现发送邮件功能的核心代码示例
Spring中已经封装了邮件操作类,通过spring配置文件可以便捷地注入到controller.action等地方. 下面是配置: p:host="${mail.host}" p ...
- 《JAVA练习题目5》 请在类中定义计算阶乘的方法完成本题目的求解
训练要点:类中的方法应该如何编写和调用.(10分) 题目内容: 输入一个10以内的整数n,计算1!+2!+-+n!的值,并输出该值. 输入格式: 10以内的一个整数 输出格式: 代表计算结果的一个整数 ...
- java args例子_Spring AOP中使用args表达式的方法示例
本文实例讲述了Spring AOP中使用args表达式的方法.分享给大家供大家参考,具体如下: 一 配置 xmlns:xsi="http://www.w3.org/2001/XMLSchem ...
最新文章
- Zookeeper .Net客户端代码
- 智能指针shared_ptr的几个例子
- 跨库多维分析后台的实现
- [react] 请说下react组件更新的机制是什么
- zabbix企业应用之low level discovery监控mysql
- AIOps中异常检测简的单应用
- [一分钟先生]涂勇:通过跳槽走上管理岗位不可取
- Zookeeper Tutorial 1 -- Overview
- form表单无刷新提交文件(iframe)
- Linux LVM管理
- 让Cookies操作变得向Session一样简单
- nginx + tomcat + redis 部署项目,解决session共享问题。
- c语言网吧添加卡,c语言网吧计费系统源代码.docx
- 恒生校招java笔试数据库语法_2015恒生电子校招笔试详解
- hdoj 1054 Strategic Game 最小点覆盖模版题dfs方式(Java版)
- WEB前端缓存解决方案
- 多目标跟踪入门篇(1):SORT算法详解
- Redis系列之——Redis-Cluster
- matlab 隐写分析,RS隐写分析.ppt
- 如何提高企业会议管理的“执行力”