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加入容器

 

posted @   康舒服冰红茶  阅读(148)  评论(0编辑  收藏  举报
编辑推荐:
· .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 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示