工作两年后,重新再来写这篇博客。
在介绍具体代码之前,首先大家先思考两个问题
- 为啥要实现自定义的annotation?
- 如何实现自定义的annotation?
首先回答第一个问题,Spring提供的原生annotation只有最原始的几个功能,例如依赖注入。如若需要实现一些其他功能,如dubbo的注册发现,原生的Spring annotation无法提供相应的能力。因此实现自定义annotation可以满足一些扩展功能。
第二个问题,如何实现自定义的annotation。参看Spring原生annotation实现有以下几个步骤,
- Spring在类加载时扫描自定义注解,并将注解类生成对应的beanDefinition。
- Spring在类实例化时完成自定义类的实现。
回答完上面的问题,下面进入代码环节,代码的功能也很简单就是实现Spring依赖注入功能。
要实现自定义的annotation功能,首先要先定义自定义的annotation。
自定义的annotation实现完成后,那怎么才能让Spring类注册时可以扫描我们自定义的annotation呢,也比较简单就是基于Spring 实现一个自定的annotation扫描器,然后将扫描出来的结果注册到Spring的注册器中就