是否一类会在Spring应用程序作为一个bean既需要@Component
和@Named
在同一时间?
有什么意义,如果两者都使用这样的吗?
我试着搜索网,以及看到了这些注释的标准文档,发现他们有点混乱。
最后,这名如果是通过应用程序@Named
批注不指定任何bean的名字?
是否一类会在Spring应用程序作为一个bean既需要@Component
和@Named
在同一时间?
有什么意义,如果两者都使用这样的吗?
我试着搜索网,以及看到了这些注释的标准文档,发现他们有点混乱。
最后,这名如果是通过应用程序@Named
批注不指定任何bean的名字?
@Component
和@Named
是注解,基本上做同样的事情,但来自不同的API。
@Component
属于春天的API。 这标志着类被自动检测作为一个bean和可选允许你指定这个bean的名字( @Component("foo")
如果没有明确的名称规范检出菜豆会得到它的类的名称派生的默认名称。
@Named
属于javax.inject
API。 这标志着类被自动检测作为一个bean,并要求您指定一个名称。
春天同时支持这些API。 它没有意义在同一类中使用这两种注解,因为它们提供相同的功能。
也可以看看:
弹簧支持@Named
注解(JSR-330)来替代@Component
(弹簧)。
一般来说, @Named
甚少命名,因为没有描述它做什么,所以我更愿意用@Component
每当我可以。
无论是两个应该被使用。 同时使用@Component和@Named不作任何意义。 添加到上述(其他的)评论@Component(“[someComponentID]”)和@Named(“[someNamedID]”)通过使ID在括号,分配一个ID到Bean如果不是隐式分配一个。