spring不同配置下的注入方式
来源于 Spring基础(2):放弃XML,走向注解
xml配置
至此,我们把XML配置下2种注入方式都实验过了,它们的区别是:
XML配置<property> + 对象提供对应的setter方法
XML配置<constructor-arg> + 对象提供对应的构造方法
改变XML配置的同时,需要对象提供对应的方法支持。如果你用了<property>,却没有在类中提供setter方法,则会报错。
xml自动装配
Spring支持自动装配(全局/局部),把原先<bean>标签的职责单一化,只定义bean,而依赖关系交给类本身维护
自动装配共4种,除了no,其他3种各自对应两种注入方式:byName/byType对应setter方法注入,constructor对应构造方法注入 (请自己动手证明)
注解自动装配
也就是说,@Autowired默认采用byType模式自动装配,如果找到多个同类型的,会根据名字匹配。都不匹配,则会报错。
@Autowired:默认byType,type相同则byName
@Resource:和@Autowired几乎一样,但不能配合@Qualifier,因为它本身就可以指定beanName。但没有required属性
配置类充当xml
Java-based Container Configuration编程风格指的是:
用@Configuration把一个普通Java类变成配置类,充当XML
在配置类中写多个方法,加上@Bean把返回值对象加到Spring容器中
把配置类AppConfig喂给AnnotationConfigApplicationContext,让它像解析XML一样解析配置类
无需加@Component注解,因为我们可以手动new之后通过@Bean加入容器
本文来自博客园,作者:康舒服冰红茶,转载请注明原文链接:https://www.cnblogs.com/pong137/p/14231863.html
欢迎转载,但请注明「作者」和「原文地址」。转载请在文中保留此段,感谢您对作者版权的尊重。如需商业转载或刊登,请联系作者获得授权。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?