为了账号安全,请及时绑定邮箱和手机立即绑定

用于下载 jar 文件的 Maven 依赖项

用于下载 jar 文件的 Maven 依赖项

慕的地6264312 2022-05-25 10:22:37
我希望有人能给我一些提示,因为谷歌对我帮助不大。我想从 Artifactory 下载一个 jar,并从我的 java 代码中运行它,但是在这个简单的步骤中我遇到了一些困难。这是我无法工作的 Maven 依赖项有了这种依赖关系,Maven 就知道我的 java 文件的 groupId、artifactId 和版本。至于 Scope 字段,我看到它可以是 compile、provided、runtime、system 或 test。该 jar 文件代表另一个模块,它是一个应用程序,我想从代码中处理它,我在构建项目时不希望该文件有任何特定状态,我只想下载它,并在何时使用它我需要它,但它必须在当前项目中下载。现在,有了这个maven依赖,当我构建项目时,jar文件将从Artifactory下载,但最后我得到一个错误:原因:org.springframework.context.annotation.ConflictingBeanDefinitionException:bean 类 [com.cgm.user.impl.UserManagerImpl] 的注释指定的 bean 名称“userManagerImpl”与现有的、不兼容的同名和类 bean 定义冲突 [ com.cgm.authentication.impl.UserManagerImpl]所以,Spring 不知道该选择什么;我认为一种解决方案是重命名项目中的所有 bean,但我不能这样做。有什么建议么?
查看完整描述

1 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

对于您所指出的,问题是因为您有多个相同类型的 bean。


您可以将@Qualifier与@Autowired一起使用。事实上,如果发现不明确的 bean 类型,spring 会要求您明确选择 bean,在这种情况下您应该提供限定符


例如,在以下情况下,有必要提供一个限定符


 @Component

 @Qualifier("staff") 

 public Staff implements Person {}


 @Component

 @Qualifier("employee") 

 public Manager implements Person {}



 @Component

 public Payroll {


 private Person person;


  @Autowired

  public Payroll(@Qualifier("employee") Person person){

      this.person = person;

  }


}

如果它是项目的一部分,另一种选择是在类定义中使用@Qualifier注释。


查看完整回答
反对 回复 2022-05-25
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号