1. 一个类实现多个接口

如下图中的JobService.java, 此时这个beanName=jobService,  没有包名,类名字首字母小写

可以使用下面三种方式获得这个bean

 IProcess bean = applicationContext.getBean(IProcess.class);
Object jobService = applicationContext.getBean("jobService");
ITask jobService1 = applicationContext.getBean("jobService", ITask.class);

但是不能使用加包名的方式 Object bean1 = applicationContext.getBean("com.web.beanname.JobService");

2.  一个接口有多个实现类

此时容器中有两个bean: jobService2, jobService

不能使用接口的方式获取bean>>> IProcess bean = applicationContext.getBean(IProcess.class); , 因为容器找到两个,不知道要返回哪一个

3. 不同类的bean有相同名称?

同一个容器中不能存在相同名称的bean。如果两个类包名不同,但类名相同,那么需要至少修改其中一个,定义一个别名

为什么有上面的实验:

一些自定义的框架getBean和Spring不一样

spring默认是getBeanByType,  @Autowire + @Qualifier

j2ee 默认getBeanByName 或者 getBeanByType @Resource   参考:https://www.cnblogs.com/think-in-java/p/5474740.html

他们解析的是Field上面注解的name,type, (最不济也是Field的type)

分布式定时任务框架schedulerX的注入方式是getBeanByName, 解析的是Field的name, 此时使用哪种注解都不行,因为他不解析上面的两种annotation,此时需要注意fieldName写成bean的实现类首字母小写的形式

后记:

spring boot中@Configuration的beanName是包含包名的字符串, @Configuration的内部类也会生成bean,只不过多加了内部类的标识符$

最新文章

  1. Java基础-gs(垃圾回收)
  2. 凸包稳定性判断:每条边上是否至少有三点 POJ 1228
  3. WMB代理无法正常启动时的解决方案。
  4. R-大数据分析挖掘(2-R爬虫)
  5. Windows版 mysql 5.7.16安装
  6. Java设计模式之认识阶段
  7. 【翻译】Ext JS最新技巧——2014-10-30
  8. mac osx 10.9安装配置macvim
  9. zoj1494 暴力模拟 简单数学问题
  10. dnion的remap.conf文件
  11. JVM GC-----垃圾回收算法
  12. 一个完整的html 每个标签的含义
  13. SQL Server中文排序混乱
  14. Oracle 删除重复数据只留一条(转)
  15. [Java] Apache Ant 构建基础教程
  16. nginx1配置文件
  17. spring的Ioc容器与AOP机制
  18. Codeforces758D Ability To Convert 2017-01-20 10:29 231人阅读 评论(0) 收藏
  19. XAF-如何在详细视图界面显示按钮(含示例项目下载)
  20. BZOJ3209 花神的数论题 【组合数学+数位DP+快速幂】*

热门文章

  1. bzoj 2648 SJY摆棋子——KDtree
  2. form+iframe实现ajax文件上传
  3. Asp.net工作流workflow实战之书签(二)
  4. HDOJ5044(最近公共祖先)
  5. Cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密
  6. JavaScript中对象的属性
  7. kvm基础 虚拟机内存、CPU调整
  8. Material使用04 MdCardModule和MdButtonModule综合运用
  9. 8、泛型程序设计与c++标准模板库2.2向量容器
  10. netty的引用计数