异常信息:org.springframework.beans.factory.UnsatisfiedDependencyException:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.byd.mes.bussiness.service.siteoperation.activity.ExecuteActivityService] is defined: expected single matching bean but found 2: [executeActivityService, executeActivityForTesterService]
解决方案:
博文链接地址: http://haowei0315.javaeye.com/blog/444731
@Qualifier
@Autowired是根据类型进行自动装配的。在上面的例子中,如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出 BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出 BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题。
1. 可能存在多个UserDao实例
- @Autowired
- public void setUserDao( @Qualifier ( "userDao" ) UserDao userDao) {
- this .userDao = userDao;
- }
@Autowired public void setUserDao(@Qualifier("userDao") UserDao userDao) { this.userDao = userDao; }
这样,Spring会找到id为userDao的bean进行装配。
2. 可能不存在UserDao实例
- @Autowired (required = false )
- public void setUserDao(UserDao userDao) {
- this .userDao = userDao;
- }
@Autowired(required = false) public void setUserDao(UserDao userDao) { this.userDao = userDao; }
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。
@Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是name和type,Spring将@Resource注解的name属性解 析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用 byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。
@Resource装配顺序
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@Autowired
UserDao userDao
先按类型 在按userDao名字找,如果找不到就报,
相关推荐
【文件夹】名称: log文件名称: business-provider_debug.log文件名称: business-provider_error.log 主要可以看下这个日志,主要是事务找不到管理器文件... expected single matching bean but found 2: dataSourceTr
解决 VSCode 编辑 vue 项目报错 Expected indentation of 2 spaces but found 4解决 VSCode 编辑 vue 项目报错 Expected indentation of 2 spaces but found 4问题问题分析解决办法一解决办法二 解决 VSCode 编辑 ...
当您遇到"expected , but found BlockMappingStart..."这类错误时,通常是因为YAML(YAML Ain't Markup Language)语法不正确导致的。YAML是一种常用的数据序列化语言,用于配置文件,它的语法规则较为严格。 首先...
Expected one result (or null) to be returned by selectOne(), but found:18 下面展示一些 mapper.xml。 SELECT st.title as titlest ,st.info_text as info_text , sbt.title as titlesbt,sbt.icon as icon...
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dubbo:application'. - schema_reference.4: Failed to read schema document '...
caffe_pb2文件,在出现TypeError: expected bytes, str found问题的时候可以考虑用来替换caffe_root/python/caffe/proto/caffe_pb2.py文件
2.查询多条数据,但是前台限制只能查询一条 (1) 检查数据sql语句写对没有 (2) 查看mybaties的返回值(resultType或resultMap),可以返回list,map等数据 (3) dao层接口要与mybaties中返回值和接收值都要保持一致 ...
1. **“statement expected but procedure found”**:这个错误提示表明在编译器尝试找到一个语句的地方,它却找到了一个过程(Procedure)的定义。这通常意味着你在某个过程或函数的定义中忘记了关闭的`end`关键字...
postcss-log-warnings 已弃用-已弃用-已弃用这个插件已经长大,成为 ! 请切换到新的官方PostCSS插件! 已弃用-已弃用-已弃用在控制台中记录PostCSS警告。目的从PostCSS 4.1开始,单个PostCSS进程可以从其使用的所有...
no library called "libcairo-2" was found cannot load library 'libcairo.so.2': libcairo.so.2: cannot open shared object file: No such file or directory cannot load library 'libcairo.2.dylib': libcairo....
Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前...
检查TypeScript定义 JavaScript开源库中的.d.ts TypeScript定义的单元测试。...// THROWS Expected 3 arguments, but got 2 lib . on < Events> ( 'set' , 2 ) // Positive test: test/index.types.ts impo
修改后仍然存在问题,例如 "The path '/usr/src/linux-headers-2.6.35-22-generic/include' is a kernel header file directory, but it does not contain the file 'linux/autoconf.h' as expected"。这是因为找不...
2. 给出了选择问题的期望时间界限,包括上界和下界。 3. 分析了算法的理论基础,并提供了严格的数学证明。 4. 探讨了算法的实际应用及其在不同场景下的性能表现。 总之,本文通过对选择问题的深入研究,不仅为理论...
本书《expected return》是一本专著,深入探讨了投资者在投资决策中非常重要的一个概念——预期收益率。预期收益率是基于投资者对未来投资回报的估计,这不仅包括对回报的量化预测,同时也涉及到对潜在风险的评估。...
2. **加密压缩包**: 要对ZIP文件进行加密,可以使用`DeflaterOutputStream`,但它不直接支持ZIP加密。我们通常需要借助第三方库,如Apache Commons Compress或者Zip4j,它们提供了更高级的功能,包括加密。以Zip4j...
为了应对长字符串的加解密需求,`jsencrypt.min.js`库提供了一些扩展方法,比如`encryptLong2`和`decryptLong2`。这两个方法的目的是将长字符串分段进行加密或解密,以避免因单次加密数据过长导致的错误。它们通常会...
2. **缺标识符 (Identifier expected)**:这意味着在代码中,编译器期望找到一个标识符(变量、函数、类等),但没有找到。这通常是由于拼写错误、遗漏或者作用域问题引起的。检查并确保所有标识符都已正确声明和...
IE下使用uploadify上传报:Uploadify-Script5007 Object expected解决方案
一、报错内容类似:Expected indentation of 0 spaces but found 4 将 build 文件下的 webpack.base.conf.js 文件里面的下面一段代码注释掉(eslint-loader内容),重新运行. 二、报错内容: Newline required at ...