Spring默认BeanName
先说结论:
1、XML配置和注解生成默认BeanName的机制是不同的
2、XML配置默认BeanName = 全类名 + # + 数字,如 com.anyway.p2024.service.impl.BigHouseServiceImpl#0
3、注解默认BeanName = 短类名首字母变成小写,如 bigHouseServiceImpl
注意:如果短类名前2个字母都是大写,则保持短类名不变,比如 ALibaba
示例
com.anyway.p2024.service.BigHouseService
public interface BigHouseService {
}
com.anyway.p2024.service.impl.BigHouseServiceImpl
@Service
public class BigHouseServiceImpl implements BigHouseService {
}
com.anyway.p2024.service.impl.BigHouseServiceImpl2
@Service
public class BigHouseServiceImpl2 implements BigHouseService {
}
com.anyway.p2024.domain.ALibaba
@Component
public class ALibaba {
}
applicationContext.xml
<context:annotation-config />
<context:component-scan base-package="com.anyway" />
<bean class="com.anyway.p2024.service.impl.BigHouseServiceImpl" />
<bean class="com.anyway.p2024.domain.ALibaba" />
<bean class="com.anyway.p2024.domain.ALibaba" />
Demo04.java
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
System.out.println(JSON.toJSON(BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ac, BigHouseService.class)));
System.out.println(JSON.toJSON(BeanFactoryUtils.beanNamesForTypeIncludingAncestors(ac, ALibaba.class)));
输出如下:
["bigHouseServiceImpl","bigHouseServiceImpl2","com.anyway.p2024.service.impl.BigHouseServiceImpl#0"]
["ALibaba","com.anyway.p2024.domain.ALibaba#0","com.anyway.p2024.domain.ALibaba#1"]
思考题:
如果将 com.anyway.p2024.domain.ALibaba 复制到 com.anyway.p2024.service.ALibaba ,执行 Demo04.java 会输出什么?
Spring默认BeanName的更多相关文章
- spring根据beanName获取bean
spring根据beanName获取bean主要实现: org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean( ...
- Spring 默认的 AopProxy
Spring 默认的 AopProxy JdkDynamicAopProxy Spring xml 文件默认解析器 DefaultDocumentLoader 采用 standard JAXP-con ...
- spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
- spring默认启动位置以及contextConfigLocation设置源码解析
这几天在看spring的源码,涉及到spring启动位置的部分,下面就看看spring到底是从哪儿开始加载的.本文使用的是spring3.0M3 首先spring的加载会借助一个监听器ContextL ...
- spring默认欢迎页设置
简单配置的方式,直接展示静态网页,不经过Controller. web.xml 中什么没有配置任何有关欢迎页的信息!其实这时等效于如下配置:这个会由Web容器最先访问! //-未指定欢迎页时,缺省等于 ...
- spring默认为单例模式
这两天看到一个bug,记录下. 在获取任务的时候,本来任务不是由这个柜员领取的,但是最后跑到那个柜员下面去了. 查看日志,发现两个任务的领取操作很近,日志是穿插着打的. 后来经人指点,说spring初 ...
- 对spring默认的单列模式的理解
我想大部分朋友对spring的单例模式都比較了解. 什么叫单例模式呢,顾名思义就是无论有多少个请求,都仅仅生成一个实例. 比方在spring中a,b请求都在调用同样的bean ,他们都是调用的同一个b ...
- Spring源码学习-容器BeanFactory(三) BeanDefinition的创建-解析Spring的默认标签
写在前面 上文Spring源码学习-容器BeanFactory(二) BeanDefinition的创建-解析前BeanDefinition的前置操作中Spring对XML解析后创建了对应的Docum ...
- Spring 系列教程之默认标签的解析
Spring 系列教程之默认标签的解析 之前提到过 Spring 中的标签包括默认标签和自定义标签两种,而两种标签的用法以及解析方式存在着很大的不同,本章节重点带领读者详细分析默认标签的解析过程. 默 ...
- spring容器中的beanName
1. 一个类实现多个接口 如下图中的JobService.java, 此时这个beanName=jobService, 没有包名,类名字首字母小写 可以使用下面三种方式获得这个bean IProce ...
随机推荐
- 你想有多pwn
第一章 1.1 认识程序 file.ldd 1.2 gdb调试 一.指令 1.start.run 2.断点 设置断点 b mian.b *0x123456 查看断点 info b.i b 让断点失效 ...
- 从零开始学java(前言)
很长时间以来,自己都非常的懒惰,以前学习的知识都已经记不大清了,入职半年以来,学到的东西不多,反倒以前会的都不会认识了 打算从新开始,从心出发,认真学习 注册博客园是看了狂神说的建议,希望通过养成每天 ...
- MySQL底层概述—7.优化原则及慢查询
大纲 1.Explain概述 2.Explain详解 3.索引优化数据准备 4.索引优化原则详解 5.慢查询设置与测试 6.慢查询SQL优化思路 1.Explain概述 使用Explain关键字可以模 ...
- nvm安装node报错Get "https://nodejs.org/dist/latest/SHASUMS256.txt": dial tcp 104.20.23.46:443: i/o timeout
windows上通过nvm管理node版本,在本地安装了nvm后,通过nvm安装node,报错了,信息: Could not retrieve https://nodejs.org/dist/late ...
- 如何为在线客服系统的 Web Api 后台主程序添加 Bootstrap 启动页面
背景 我在业余时间开发了一款自己的独立产品:升讯威在线客服与营销系统.这个系统的核心后台主程序,在最早期是完全没有页面,经常有朋友部署之后,一访问是 404,以为没有部署成功.我一看这肯定不行啊,可后 ...
- liunx安装docker,portainer,mysql,rabbitMQ,nacos
由于公司框架迭代了,故此写个随笔,记录一下,方便日后回顾 1.准备 阿里云服务器(liunx CentOS 7.6) 2.前置工作 (1)查看系统版本 lsb_release -a (2)查看系统以及 ...
- Datadog发布云成本现状报告:83%的容器支出被闲置资源浪费
原文链接:https://www.datadoghq.com/state-of-cloud-costs/ 编译:CloudPilot AI 尽管灵活多样的云服务为云成本优化提供了诸多机会,但企业在提升 ...
- Flutter null safety 无法运行
Flutter空安全问题 在pub上有一些库导入之后无法运行,这是因为健全的空安全 解决方法 1.在命令行中添加参数 flutter run --no-sound-null-safety 2.在IDE ...
- Docker Compose - 向远程主机部署服务
问题描述 通常,我们本地编写 docker-compose.yml 文件,然后运行测试.但是,我们需要在 arm64 环境中进行测试,无法在本地直接运行测试. 我们希望可以在本地编写,然后本地使用 d ...
- Spirng Data JPA 之Specification中and、or的使用
项目中,有的地方存值以逗号分隔的方式来存储,但查询的时候是需要满足单个值或者多个值条件查询,因此用到Specification中and.or组合使用,此文用来记录,以防后用. 描述:parentCod ...