Bean的依赖注入的两种方式

Bean的依赖注入有两种方式

注意!在这里我讲的都是普通数据类型的依赖注入方式
1. set方法
这种方法是最常用的Bean依赖注入方法,首先要求需要被注入的类中的属性必须要含有set方法!这里我举例一下,我有一个User类,我需要对uid属性进行依赖注入

public class User{
   
	private String uid;
	public void setUid(String uid){
   
		this.uid = uid;
	
### Spring Bean依赖注入方式 Spring 中的 Bean 依赖注入主要分为两种基本类型:按名称注入和按类型注入。除此之外,还有多种具体的实现方式可以完成依赖注入。 #### 构造器注入 构造器注入是指通过构造函数来传递依赖项的一种方式。这种方式的优点在于它能够强制初始化所需的属性,并且适合于那些不可变的对象或者需要在创建时就完全定义其状态的对象[^2]。 ```xml <bean id="exampleBean" class="examples.ExampleBean"> <constructor-arg ref="anotherExample"/> </bean> ``` 上述 XML 片段展示了如何利用 `<constructor-arg>` 来指定构造参数并将其绑定到另一个 Bean 上。 #### Setter 方法注入 Setter 方法注入是最常见的依赖注入形式之一。开发者可以通过定义特定类型的 setter 方法,在这些方法上应用 `@Autowired` 或者其他类似的注解来进行自动装配。如果未提供任何额外配置,默认情况下会按照类型匹配原则寻找合适的候选者[^3]。 对于基于 Java 配置的情况,则可以直接编写如下代码: ```java @Configuration public class AppConfig { @Bean public MyService myService() { return new MyServiceImpl(); } } ``` 而在 XML 文件中则可能看起来像这样: ```xml <bean id="myService" class="com.example.MyServiceImpl"/> ``` 当存在多个相同接口的不同实现类实例时,可借助 `@Qualifier` 注解进一步细化选择标准[^4]。 #### 字面量值注入 (`value`) 除了以上提到的服务间相互引用之外,有时也需要向 Bean 属性赋给简单的字符串、整数等基础数据类型值。这通常通过 `@Value` 实现。 ```java @Component public class ExampleComponent { private final String exampleProperty; public ExampleComponent(@Value("${property.name}") String property) { this.exampleProperty = property; } // getters and other methods... } ``` 这里展示了一个场景——从外部资源加载配置信息作为组件内部字段初始值的例子。 #### 自动装配 (Autowiring) 自动装配允许框架自行决定哪个或哪些 Beans 应该被注入到当前正在处理的目标 Bean 当中去。它可以依据名字(`byName`)或者是类别(`byType`)来做决策[^1]。 总结来说,Spring 提供了丰富的选项让用户灵活定制自己的应用程序结构,无论是传统的XML声明还是现代化的注解读写风格都能很好地支持业务需求.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值