最近在了解java源码,但是看注释却非常疑惑,那些@see @Link到底是什么
这里简单记录:
在Spring源码里面会有大量的注释,其中使用了大量的javadoc注解,想要看懂这些注释并不难,但是注释里的注解有什么用却扰乱了我的心神!
可忽略的
标签 说明
@author 作者 :作者标识
@version 版本号 :版本号
@deprecated 过期文本 标识随着程序版本的提升,当前API已经过期,仅为了保证兼容性依然存在,以此告之开发者不应再用这个API
@throws异常类名 构造函数或方法所会抛出的异常。
@exception 异常类名 同@throws。
@since 描述文本 API在什么程序的什么版本后开发支持。
重要的注解注释
@param 参数名 描述 方法的入参名及描述信息,如入参有特别要求,可在此注释。
@return 描述 对函数返回值的注释
@see 引用 查看相关内容,如类、方法、变量等。
{@link包.类#成员 标签} 链接到某个特定的成员对应的文档中。
{@value} 当对常量进行注释时,如果想将其值包含在文档中,则通过该标签来引用常量的值。
随便举例:
比如我们在导入Bean,使用@Import注解,Ctrl+鼠标左键点进去
会发现:
public @interface Import {
/**
* {@link Configuration}, {@link ImportSelector},
* {@link ImportBeanDefinitionRegistrar}
* or regular component classes to import.
*/
Class<?>[] value();
}
从注释不难看出:使用@Improt注解 需要传入Class数组,然后看注解
@link 就表示关联 三个类(很明显这三个类和Class数组有莫大的关系),然后Ctrl+左键点入ImportBeanDefinitionRegistrar
public interface ImportBeanDefinitionRegistrar {
/**
* Register bean definitions as necessary based on the given annotation
* metadata of
* the importing {@code @Configuration} class.
* <p>Note that {@link BeanDefinitionRegistryPostProcessor}
* types may <em>not</em> be
* registered here, due to lifecycle constraints related to
* {@code @Configuration}
* class processing.
* @param importingClassMetadata annotation metadata
* of the importing class
* @param registry current bean definition registry
*/
public void registerBeanDefinitions(
AnnotationMetadata importingClassMetadata,
BeanDefinitionRegistry registry);
}
可以看出ImportBeanDefinitionRegistrar 是个接口,需要被实现 @para 显示
importingClassMetadata为导入类的元注解
registry:当前Bean定义 注册
所以根据这些信息,当我们拿到一个注解或者类 可以根据这些注释 很容易的知道
他们的信息!
学习是要掌握一种方法,而不只是简单的学会调用接口调用方法!
另外还有很多看不懂的,比如接口数组 这都是些什么玩意儿啊