注解
(1)Java注解的三种形式
- 不带参数:@Annotation、@Override
- 只有一个参数@(key=value):
【key值的关键字就叫value】
value可以省略,其余参数名不可以省略
值可以是字符串也可以是数组 - 带有多个参数
🍎 @Component——被标注的类的对象由Spring创建,如果无参数则对象名为类名小写,如果有参数则按参数值定义对象
该注解有一个参数value() default “”; 且默认值为空
使用时,可以不带参数@Component;也可以带一个参数@Componemt(value = “myprinter”)意思是给该类创建一个名为myprinter的对象;当只有一个参数且参数名为value时,value可以省略@Componemt(“myprinter”);
当使用带参的注释时,注意在获取该对象时,需要获取一个类型强转的该名字的对象。
🍎 @Resource
一个参数@Resource (name = “blackInk”)
多个参数@Resource (name = “blackInk”,type = “” ,lookup ="");
(2)内建注解——@Override
(3)自定义注解——@Target、@Retention、@Documented、@Inherited
元注解:描述注解的注解,可以标注方法、类、接口、参数
🍎@Target
value=数组,value可以省略
🍎@Retetion
runtime>class(.class)>source(.java)
例如:@Override校验重写
由该注解内容可知,该注解作用于方法且作用范围为source,当文件编译后就不存在了
例如:@Resource对象依赖注入
由该注解内容可知,该注解作用于类、属性、方法且作用范围为runtime,当文件运行实例化对象后起作用。
🍎@Documented
🍎@Inherited
例如:@ComponentScan扫描
由该注解内容可知,该注解作用于类且作用范围为runtime,继承@ComponentScans。
@AliasFor(“basepackages”)
String[] value() default {}
@AliasFor(“value”)
String[] basepackage() default {}
——别名,basepackages=value可以被省略