使用Spring处理自定义注解

原创 2015年07月08日 17:58:09

使用Spring处理自定义注解

本文只讲思想,不讲代码。

可能的两种方法

  1. spring schema
  2. spring aop aspect

参考1

dubbo service 包名:com.alibaba.dubbo.config

参考2

spring mvc 包名:org.springframework.web.servlet.config
可以参考这两个的实现,利用schema添加自定义注解并处理自己的注解,注册搜索模块。

源码分析

  1. 通过schema添加配置解析如: 在 spring配置文件中添加 <dubbo:annotation/>
  2. 前提:在 dubbo.xsd 中定义了 annotation
  3. 在spring.handlers 定义了处理类com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler
  4. 且 spring.schemas 中定义了上述文件 dubbo.xsd
  5. 如此一来,spring 配置文件中的 dubbo:annotation 则会交由DubboNamespaceHandler处理,但是它只是在其它情况时处理一些属性,而在 annotation 时,仅仅是把AnnotationBean这个类注册到springp容器中了。parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);
  6. 而AnnotationBean类实现了 以下接口 implements DisposableBean, BeanFactoryPostProcessor, BeanPostProcessor, ApplicationContextAware。其中BeanFactoryPostProcessor, BeanPostProcessor这两个接口可以在类定义完成后做一些处理。这里可以对所有bean进行一次处理,如果扫描到有注解Service或者Reference ,则处理……

总结

这里可以看出,只要有实现了BeanFactoryPostProcessor, BeanPostProcessor接口的bean,则spring 就会执行,所以自定义注解的处理可以在使用此方法处理。甚至不需要schema,只需要在spring配置文件中手动定义这个bean即可。当然,如果需要处理更多自定义标签,使用schema会更方便。另外schema扩展只是为了处理更多标签的,和自定义注解并没有关系的。

其它

网上有更多的自定义注解,讲解的都是基于AOP的方式,通过自定义注解加上@Aspect 的方法面向切面处理一些日志之类的东西。这些方式都是需要在方法被调用时,在方法前或者方法后执行,而不是像spring注解一样,在一开始注册一些东西。

版权声明:本文为博主原创文章,未经博主允许不得转载。

深入Spring:自定义注解加载和使用

前言 在工作中经常使用Spring的相关框架,免不了去看一下Spring的实现方法,了解一下Spring内部的处理逻辑。特别是开发Web应用时,我们会频繁的定义@Controller,@Servic...
  • z69183787
  • z69183787
  • 2016年12月21日 14:56
  • 5148

Spring自定义注解的使用

http://blog.csdn.net/jackyechina/article/details/52980903 http://blog.csdn.net/purisuit_knowledge...
  • purisuit_knowledge
  • purisuit_knowledge
  • 2017年03月13日 15:09
  • 1570

Spring自定义注解

java注解:附在代码中的一些元信息,用于在编译、运行时起到说明、配置的功能。 一、元注解 java提供了4中元注解用于注解其他注解,所有的注解都是基于这四种注解来定义的。 @Target注解...
  • mafan121
  • mafan121
  • 2015年12月28日 20:29
  • 9741

spring中自定义注解(annotation)与AOP中获取注解

一、自定义注解(annotation) 自定义注解的作用:在反射中获取注解,以取得注解修饰的类、方法或属性的相关解释。 package me.lichunlong.spring.annotat...
  • qpfjalzm123
  • qpfjalzm123
  • 2015年04月15日 16:51
  • 47091

深入Spring:自定义注解加载和使用

前言在工作中经常使用Spring的相关框架,免不了去看一下Spring的实现方法,了解一下Spring内部的处理逻辑。特别是开发Web应用时,我们会频繁的定义@Controller,@Service等...
  • wwccong
  • wwccong
  • 2016年05月10日 19:52
  • 1252

java 自定义注解 spring aop 实现注解

java自定义注解     1.几个常用的注解解释               @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(...
  • jidetashuo
  • jidetashuo
  • 2017年01月13日 11:46
  • 1205

Spring自定义注解加载和使用

原文地址:http://www.cnblogs.com/wcongcode/p/5482239.html 深入Spring:自定义注解加载和使用 前言 在工作中经常使用Spring的相关框架...
  • tanga842428
  • tanga842428
  • 2016年10月14日 05:43
  • 588

Java自定义注解——简易实现spring @Autowired

用过spring的都知道@Autowired,但是类似的注解内部是怎样实现的呢?下面通过一个小例子来了解一下大概的实现过程 在看这个例子之前需要先对java反射机制有了解,不需要多深入,只需知道反射是...
  • u010351766
  • u010351766
  • 2016年06月16日 19:19
  • 2887

SpringMVC利用AOP实现自定义注解记录日志

SpringMVC利用AOP实现自定义注解记录日志
  • paincupid
  • paincupid
  • 2016年01月18日 00:49
  • 13039

创建spring管理的自定义注解

Annotation其实是一种接口。通过java的反射机制相关的API来访问Annotation信息。相关类(框架或工具中的类)根据这些信息来决定如何使用该程序元素或改变它们的行为。Java语言解释器...
  • wuqiqing_1
  • wuqiqing_1
  • 2016年10月09日 09:29
  • 1818
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Spring处理自定义注解
举报原因:
原因补充:

(最多只允许输入30个字)