使用Spring处理自定义注解
来源:互联网 发布:球球大作战隐身软件 编辑:程序博客网 时间:2024/05/17 01:01
使用Spring处理自定义注解
本文只讲思想,不讲代码。
可能的两种方法
- spring schema
- spring aop aspect
参考1
dubbo service 包名:com.alibaba.dubbo.config
参考2
spring mvc 包名:org.springframework.web.servlet.config
可以参考这两个的实现,利用schema添加自定义注解并处理自己的注解,注册搜索模块。
源码分析
- 通过schema添加配置解析如: 在 spring配置文件中添加
<dubbo:annotation/>
- 前提:在 dubbo.xsd 中定义了 annotation
- 在spring.handlers 定义了处理类com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler
- 且 spring.schemas 中定义了上述文件 dubbo.xsd
- 如此一来,spring 配置文件中的 dubbo:annotation 则会交由DubboNamespaceHandler处理,但是它只是在其它情况时处理一些属性,而在 annotation 时,仅仅是把AnnotationBean这个类注册到springp容器中了。parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);
- 而AnnotationBean类实现了 以下接口 implements DisposableBean, BeanFactoryPostProcessor, BeanPostProcessor, ApplicationContextAware。其中BeanFactoryPostProcessor, BeanPostProcessor这两个接口可以在类定义完成后做一些处理。这里可以对所有bean进行一次处理,如果扫描到有注解Service或者Reference ,则处理……
总结
这里可以看出,只要有实现了BeanFactoryPostProcessor, BeanPostProcessor接口的bean,则spring 就会执行,所以自定义注解的处理可以在使用此方法处理。甚至不需要schema,只需要在spring配置文件中手动定义这个bean即可。当然,如果需要处理更多自定义标签,使用schema会更方便。另外schema扩展只是为了处理更多标签的,和自定义注解并没有关系的。
其它
网上有更多的自定义注解,讲解的都是基于AOP的方式,通过自定义注解加上@Aspect 的方法面向切面处理一些日志之类的东西。这些方式都是需要在方法被调用时,在方法前或者方法后执行,而不是像spring注解一样,在一开始注册一些东西。
0 0
- 使用Spring处理自定义注解
- Spring自定义注解的使用
- spring 自定义注解及使用
- 利用Spring AOP处理自定义注解
- 利用Spring AOP处理自定义注解
- 深入Spring:自定义注解加载和使用
- Spring自定义注解加载和使用
- 深入Spring:自定义注解加载和使用
- 深入Spring:自定义注解加载和使用
- 深入Spring:自定义注解加载和使用
- 深入Spring:自定义注解加载和使用
- 使用Spring自定义注解实现任务路由
- 在spring 中使用自定义注解
- 使用Spring自定义注解实现任务路由
- Spring 中使用@Aspect 控制自定义注解
- 深入Spring:自定义注解加载和使用
- 自定义注解实现spring 方法拦截用于日志,等处理
- spring mvc 自定义注解ResponseEncryptBody、RequestDecryptBody统一处理加密、解密数据,供移动端使用的rest服务
- NFinal 视图—模板
- Gradle一些事,内附安装包,帮你省事
- JAVA 计算地球上任意两点(经纬度)距离
- 10005---Java事务(七) - 分布式事务 - spring + JTA + jotm
- substring与substr与slice区别
- 使用Spring处理自定义注解
- 112 指数运算
- 变形课(并查集)
- javascript跨域访问探索之旅
- Lua和C++交互总结(很详细)
- B-树、B+树、红黑树
- 国外别墅后期PS教程洛阳生
- 淘宝分布式配置管理服务Diamond
- Django项目国际化