javax.enterprise.context.ApplicationScoped和javax.inject.Named有什么区别?

时间:2018-08-31 05:20:11

标签: java java-ee

在Java EE Web应用程序中,我可以互换使用@Named和@ApplicationScoped注释,如下所示。

  @Transactional
  @ApplicationScoped
  public class MemberBankAccountProfileServiceImpl implements 
  MemberBankAccountProfileService {

  @Named
  public class AuthenticationServiceImpl implements AuthenticationService {

谁能告诉我们@Named和@ApplicationScoped批注之间的区别。

1 个答案:

答案 0 :(得分:0)

@ApplicationScoped 对象在应用程序运行期间创建一次。创建后可以在应用程序中多次使用。

@Named 批注在JSR330中定义,用于区分同一范围内的两种相同类型的对象。  这相当于在Spring XML中按名称自动装配。

希望它可以清除基本差异。