Annotation-09-spring aop import 导入自动引入
需求
有时候我们希望写一个框架,让别人直接使用我们的注解。
然后这些注解就可以生效。
比如 spring 的 Cache 注解。
spring 的 @import 注解为我们带来了这种可能性。
方式
定义 aop
/**
* @author binbin.hou
* @since 0.0.4
*/
@Aspect
@Component
public class Retry...
2018-07-02 15:26:27 |
Java
Annotation-08-java annotation spring
Java Annotation with spring
Action.java
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Action {
/**
* 当前方法描述
* @return 描述
*/
...
2018-07-02 15:26:27 |
Java
Annotation-07-java complile annotation
Java 编译时注解
实际意义
本例子仅用于展现简单的编译时注解使用。
编译时注解,可以再编译时生成代码等。比如 lombok。
注解处理器
首先来了解下什么是注解处理器,注解处理器是javac的一个工具,它用来在编译时扫描和处理注解(Annotation)。
你可以自定义注解,并注册到相应的注解处理器,由注解处理器来处理你的注解。
一个注解的注解处理器,以Java代码(或者编译过...
2018-07-02 14:26:27 |
Java
Annotation-06-set value
设置注解的属性
这种使用场景比较少,但是不失为一种对于注解的深入理解。
实例
定义
Tag.java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java....
2018-07-02 14:18:21 |
Java
Annotation-05-Spring aop
Spring Aop + Annotation
Spring Aop 是一种经常被我们提及地代码增强功能,结合注解可以使得代码增强变得更加灵活。
实例
maven jar 引入
<properties>
<spring.version>4.2.6.RELEASE</spring.version>
<aspectj.versio...
2018-07-02 13:19:54 |
Java
Annotation-05-Spring aop pointcut 基础知识
AOP 是什么
软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题。这年头互联网也天天强调要专注嘛!
这其实也是一种“分治”或者“分类”的思想,人解决复杂问题的能力是有限的,所以为了控制复杂性,我们解决问题时通常都要对问题进行拆解,拆解的同时建立各部分之间的关系,各个击破之后整个问题也...
2018-07-02 13:19:54 |
Java
Annotation-05-Spring aop pointcut 如何动态设置?
需求
因为想写一个通用的 log 日志拦截组件,所以写了一个统一 aspect 切面。
aspect 代码
package com.github.houbb.auto.log.spring.aop;
import com.github.houbb.aop.spring.util.SpringAopUtil;
import com.github.houbb.auto.log.annot...
2018-07-02 13:19:54 |
Java
Annotation-04-Define
注解的定义
通过注解,有时候可以使我们的代码编写变得十分强大。
本文仅通过最简单的例子,展示如何定义使用以及解析注解。
实例
定义
Tag.java
定义一个标签注解。可以在类、方法、字段上使用。
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, Elem...
2018-07-02 13:10:19 |
Java