展示型商城订单网站建设,网站首页被k 做跳转,做asp网站教程,wordpress 4.8.6文章目录 前言1. 构造方法注入2. set方法注入3. 自动装配4. 注解 前言
所谓依赖注入#xff0c;其实就是给对象里的属性赋值#xff0c;因为对象里有其他对象#xff0c;因此就形成了依赖。Spring有4种方式来给属性赋值#xff1a;
构造方法注入set方法注入自动装配注解 … 文章目录 前言1. 构造方法注入2. set方法注入3. 自动装配4. 注解 前言
所谓依赖注入其实就是给对象里的属性赋值因为对象里有其他对象因此就形成了依赖。Spring有4种方式来给属性赋值
构造方法注入set方法注入自动装配注解
1. 构造方法注入
构造方法注入是指在构造方法中注入属性或者对象来实现依赖注入如下所示在标签中定义一个id为userDaoImpl的Bean并通过注入了name为usernamevalue为admin的值注入完成后直接通过this.username获取到值admin。其中引用类型使用ref属性基本类型使用value属性。
public class UserDaoImpl {private String username;public UserDaoImpl(String username) {this.username username;}
}bean iduserDaoImpl classcom.example.UserDaoImplconstructor-arg nameusername valueadmin/constructor-arg/bean2. set方法注入
set方法注入就是通过在类中实现get、set方法来实现属性或者对象的依赖注入如下所示在标签中定义一个id为userDaoImpl的Bean并通过注入了name为usernamevalue为admin的值注入完成后直接通过getUsername()获取到值admin。
public class UserDaoImpl {private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username username;}
}bean iduserDaoImpl classcom.example.UserDaoImplproperty nameusername valueadmin/property
/bean3. 自动装配
Spring提供了自动装配的功能简化了我们的配置自动装配默认是不打开的常用的方式有两种
byName通过参数名自动装配如下所示id为userService的的autowire被设置为byName后IOC容器会通过名字来自动装配发现UserService类中有个叫userDao的属性然后看看IOC容器中有没有id为userDao的如果有就装配进去。
bean iduserDao classcom.example.UserDao/bean
bean iduserService classcom.example.UserService autowirebyName/byType通过参数类型自动装配当autowire被设置为byType后IOC容器会看看里面有没有UserDao类型的有就装配进去。
bean iduserDao classcom.example.UserDao/bean
bean iduserService classcom.example.UserService autowirebyType/4. 注解
Autowired注解可以实现自动装配只要在对应的属性上标记该注解但是Autowired注解只按照byType注入。
public class UserController {Autowiredprivate IUserService userService;
}Resource注解可以实现自动装配它有两个重要属性name和typename属性解析为bean的名字type属性则解析为bean的类型。所以如果使用name属性则使用byName的自动注入策略而使用type属性则使用byType自动注入策略。如果既不指定name也不指定type属性这时将通过反射机制使用byName自动注入策略。 Autowired注解和Resource注解的作用相同只不过Autowired按照byType注入如果Autowired想使用名称可以结合Qualifier注解进行使用