From 3902d1cc67f144fecf8767d47e456cb16392cdae Mon Sep 17 00:00:00 2001 From: luoxiang <2806718453@qq.com> Date: Fri, 28 Dec 2018 19:58:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20spring=20AOP=20=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +++++++++-------- .../com/heibaiying/advice/SecondAdvice.java | 2 +- .../test/java/com/heibaiying/aop/AopTest.java | 6 +++++- .../test/java/com/heibaiying/aop/AopTest.java | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 67cecbb..805b4cb 100644 --- a/README.md +++ b/README.md @@ -27,17 +27,18 @@ spring-cloud:Finchley.SR2 | samples | 描述 | 官方文档 | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [springmvc-base](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/springmvc-base)
[springmvc-base-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/springmvc-base-annotation) | springmvc基础、参数绑定、格式转换、数据校验、
异常处理、 文件上传下载、视图渲染 | [spring mvc ](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#mvc) | +| [springmvc-base](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/springmvc-base)
[springmvc-base-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/springmvc-base-annotation) | springmvc基础、参数绑定、格式转换、数据校验、
异常处理、 文件上传下载、视图渲染 | [Spring Mvc ](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#mvc) | +| [spring-aop](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-aop)
[spring-aop-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-aop-annotation) | spring切面编程 | [Spring AOP](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#aop) | | [spring-jdbc](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-jdbc)
[spring-jdbc-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-jdbc-annotation) | spring jdbc-template 的使用 | [Using JdbcTemplat](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/data-access.html#jdbc-JdbcTemplate) | -| [spring-mybatis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mybatis)
[spring-mybatis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mybatis-annotation) | spring 整合 mybatis | [mybatis-spring](http://www.mybatis.org/spring/zh/index.html) | -| [spring-druid-mybatis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-druid-mybatis)
[spring-druid-mybatis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-druid-mybatis-annotation) | spring 整合druid、mybatis | [alibaba druid](https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) | -| [spring-redis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-redis)
[spring-redis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-redis-annotation) | spring 整合 redis 单机+集群(jedis客户端)
spring 整合 redis 单机+集群(redisson客户端) | [redisson](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | +| [spring-mybatis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mybatis)
[spring-mybatis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mybatis-annotation) | spring 整合 mybatis | [Mybatis-Spring](http://www.mybatis.org/spring/zh/index.html) | +| [spring-druid-mybatis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-druid-mybatis)
[spring-druid-mybatis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-druid-mybatis-annotation) | spring 整合druid、mybatis | [Alibaba druid](https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98) | +| [spring-redis](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-redis)
[spring-redis-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-redis-annotation) | spring 整合 redis 单机+集群(jedis客户端)
spring 整合 redis 单机+集群(redisson客户端) | [Redisson](https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95) | | [spring-mongodb](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb)
[spring-mongodb-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb-annotation) | spring 整合 mongodb | [Spring Data MongoDB](https://docs.spring.io/spring-data/mongodb/docs/2.1.3.RELEASE/reference/html/#mongo.mongo-db-factory-java) | | [spring-memcached](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached)
[spring-memcached-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached-annotation) | spring 整合 memcached(单机+集群) | [Xmemcached](https://github.com/killme2008/xmemcached/wiki/Xmemcached%20%E4%B8%AD%E6%96%87%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97) | -| [spring-rabbitmq](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq)
[spring-rabbitmq-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq-annotation) | spring 整合 rabbitmq、消息序列化与反序列化 | [rabbitmq](http://www.rabbitmq.com/getstarted.html)
[spring amqp](https://docs.spring.io/spring-amqp/docs/2.1.3.BUILD-SNAPSHOT/reference/html/) | -| spring-dubbo
spring-dubbo-annotation | spring 整合 dubbo | [duboo ](http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) | -| [spring-websocket](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket)
[spring-websocket-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket-annotation) | spring 整合 websocket | [spring websocket](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#websocket) | -| [spring-mail](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email)
[spring-mail-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email-annotation) | spring 普通文本邮件、附件邮件、模板邮件 | [spring email](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#mail) | +| [spring-rabbitmq](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq)
[spring-rabbitmq-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq-annotation) | spring 整合 rabbitmq、消息序列化与反序列化 | [Rabbitmq](http://www.rabbitmq.com/getstarted.html)
[Spring AMQP](https://docs.spring.io/spring-amqp/docs/2.1.3.BUILD-SNAPSHOT/reference/html/) | +| spring-dubbo
spring-dubbo-annotation | spring 整合 dubbo | [Duboo ](http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) | +| [spring-websocket](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket)
[spring-websocket-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket-annotation) | spring 整合 websocket | [Spring Websocket](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#websocket) | +| [spring-mail](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email)
[spring-mail-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email-annotation) | spring 普通文本邮件、附件邮件、模板邮件 | [Spring Email](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#mail) | | [spring-scheduling](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling)
[spring-scheduling-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling-annotation) | spring 定时任务 | [Task Execution and Scheduling](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#scheduling) | | spring-kafka
spring-kafka-annotation | spring 整合 kafka | [Spring for Apache Kafka](https://docs.spring.io/spring-kafka/docs/2.2.2.RELEASE/reference/html/) | diff --git a/spring/spring-aop-annotation/src/main/java/com/heibaiying/advice/SecondAdvice.java b/spring/spring-aop-annotation/src/main/java/com/heibaiying/advice/SecondAdvice.java index 6d48b41..94d8f4c 100644 --- a/spring/spring-aop-annotation/src/main/java/com/heibaiying/advice/SecondAdvice.java +++ b/spring/spring-aop-annotation/src/main/java/com/heibaiying/advice/SecondAdvice.java @@ -10,7 +10,7 @@ import org.springframework.stereotype.Component; * @author : heibaiying * @description : 自定义切面 */ -@Order(1) +@Order(2) @Aspect @Component public class SecondAdvice { diff --git a/spring/spring-aop-annotation/src/test/java/com/heibaiying/aop/AopTest.java b/spring/spring-aop-annotation/src/test/java/com/heibaiying/aop/AopTest.java index 4d7c4f0..0af02e2 100644 --- a/spring/spring-aop-annotation/src/test/java/com/heibaiying/aop/AopTest.java +++ b/spring/spring-aop-annotation/src/test/java/com/heibaiying/aop/AopTest.java @@ -25,9 +25,13 @@ public class AopTest { @Test public void saveAndQuery() { orderService.createOrder(1283929319L, "手机"); - //orderService.queryOrder(4891894129L); + orderService.queryOrder(4891894129L); } + /** + * 多个切面作用于同一个切入点时,可以用@Order指定切面的执行顺序 + * 优先级高的切面在切入方法前执行的通知(before)会优先执行,但是位于方法后执行的通知(after,afterReturning)反而会延后执行 + */ @Test public void delete() { orderService.deleteOrder(12793179L); diff --git a/spring/spring-aop/src/test/java/com/heibaiying/aop/AopTest.java b/spring/spring-aop/src/test/java/com/heibaiying/aop/AopTest.java index 2b0e852..467a2ed 100644 --- a/spring/spring-aop/src/test/java/com/heibaiying/aop/AopTest.java +++ b/spring/spring-aop/src/test/java/com/heibaiying/aop/AopTest.java @@ -22,6 +22,6 @@ public class AopTest { @Test public void save() { orderService.createOrder(1283929319L, "手机"); - //orderService.queryOrder(4891894129L); + orderService.queryOrder(4891894129L); } }