一般的依赖注入方式
一个类引用另一个类的方法,说明这两个类之间有依赖关系
public class UserService {
public void insert(UserModel model){
}
}
public class UserController{
private UserService userService;
public void insert(UserModel model){
this.userService.insert(model);
}
}
依赖对象的初始化方式
构造函数
public class UserController{
private UserService userService;
public UserController(UserService userService){
this.userService = userService;
}
public void insert(UserModel model){
this.userService.insert(model);
}
}
//UserController使用
UserSerivce userService = new UserService();
UserController userController = new UserController(userService);
//然后就可以使用userController对象了
set方法
public class UserController{
private UserService userService;
public setUserService(UserService userService){
this.userService = userService;
}
public void insert(UserModel model){
this.userService.insert(model);
}
}
//UserController使用
UserSerivce userService = new UserService();
UserController userController = new UserController();
userController.setService(userService);
//然后就可以使用userController对象了
将被依赖的对象设置到依赖的对象中,spring容器内部都提供了支持,这个在spirng中叫做依赖注入。
spring中依赖注入主要分为手动注入和自动注入,手动注入需要我们明确配置需要注入的对象。自动注入是采用约定大约配置的方式来实现的,程序和spring容器之间约定好,遵守某一种都认同的规则,来实现自动注入。
Spring手动注入方式
- 通过构造器注入
- set属性的方式
通过构造器注入
构造器的参数就是被依赖的对象,构造器注入又分为3种注入方式:
- 根据构造器参数索引注入
- 根据构造器参数类型注入
- 根据构造器参数名称注入
根据构造器参数索引注入
- bean.xml
<bean id="diByConstructorParamIndex" class="com.yuan11.UserModel">
<constructor-arg index="0" value="test"/>
<constructor-arg index="1" value="name"/>
</bean>
constructor-arg用户指定构造器的参数
index:构造器参数的位置,从0开始

本文详细介绍了Spring框架中的依赖注入,包括构造器注入和setter注入两种手动注入方式,以及按名称(byName)、按类型(byType)、构造器(constructor)和默认(default)四种自动注入方式。手动注入需要明确配置依赖对象,而自动注入则通过约定实现,简化配置。文章还讨论了各种注入方式的优缺点和应用场景。
最低0.47元/天 解锁文章
1321

被折叠的 条评论
为什么被折叠?



