@Named注解源码分析
parent
75867ad4e3
commit
d852626476
|
@ -47,7 +47,7 @@ public @interface Named {
|
|||
1. **Bean标识**
|
||||
+ `@Named` 注解可以为一个类提供一个名称,使得这个类可以被识别并管理为一个bean。这样,这个bean就可以在其他地方通过这个名称被引用和注入。
|
||||
2. **替代默认命名**
|
||||
+ 默认情况下,没有具体指定名称的bean会使用其类名的首字母小写形式作为其名称。使用 `@Named`,你可以`value`属性来覆盖这个默认名称。
|
||||
+ 默认情况下,没有具体指定名称的bean会使用其类名的首字母小写形式作为其名称。使用 `@Named`,我们可以`value`属性来覆盖这个默认名称。
|
||||
3. **解决歧义性**
|
||||
+ 在依赖注入中,有时候可能有多个bean都符合某个注入点的要求。在这种情况下,`@Named` 可以与 `@Inject` 注解结合使用,明确指定哪个bean应该被注入。
|
||||
|
||||
|
@ -460,11 +460,11 @@ protected boolean matchSelf(MetadataReader metadataReader) {
|
|||
4. **类路径依赖**
|
||||
+ 要使用`@Named`和其他JSR-330注解,需要确保`javax.inject`库在类路径上。如果没有添加此依赖,使用这些注解会导致类找不到错误。
|
||||
5. **与JSR-330的其他注解的集成**
|
||||
+ 当使用`@Named`时,您可能还希望考虑使用JSR-330的其他注解,如`@Inject`,以确保一致性。
|
||||
+ 当使用`@Named`时,我们可能还希望考虑使用JSR-330的其他注解,如`@Inject`,以确保一致性。
|
||||
6. **避免名称冲突**
|
||||
+ 当使用`@Named`为bean指定一个名称时,应确保在Spring上下文中没有其他bean使用相同的名称。否则,可能会出现不可预测的行为或错误。
|
||||
7. **作用域**
|
||||
+ `@Named`默认的作用域是singleton。但如果您需要不同的作用域,例如prototype,您需要结合使用`@Scope`注解。
|
||||
+ `@Named`默认的作用域是singleton。但如果我们需要不同的作用域,例如prototype,我们需要结合使用`@Scope`注解。
|
||||
|
||||
### 九、总结
|
||||
|
||||
|
|
Loading…
Reference in New Issue