Spring的依赖注入是指通过外部配置的方式,将一个类所依赖的其他类的实例注入到该类中,从而实现类之间的解耦。
Spring的依赖注入:
构造函数注入:通过构造函数注入依赖对象,通过在构造函数中声明参数的方式来实现依赖
注入。
//UserDao接口
public void size();
//UserDao实现类
@Override
public void size() {
System.out.println("save running");
}
//Uservice接口
public void size();
//Uservice实现类
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void size() {
userDao.size();
}
//Bean配置文件
<bean id="UserDao" class="com.dao.Impl.UserDaotest"></bean>
//两个UserDao的含义不同
<bean id="uservice" class="com.servive.implement.ServiceImplement">
<constructor-arg name="userDao" ref="UserDao"></constructor-arg>
</bean>
//测试类
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao1 = (UserDao) app.getBean("userDao");
userDao1.save();
}
Setter方法注入: 通过Setter方法注入依赖对象,通过在类中声明Setter方法,通过调用Setter方法来实现依赖注入
//UserDao接口
public void size();
//UserDao实现类
@Override
public void size() {
System.out.println("save running");
}
//Uservice接口
public void size();
//Uservice实现类
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void size() {
userDao.size();
}
//Bean配置文件
<bean id="UserDao" class="com.dao.Impl.UserDaotest"></bean>
<bean id="uservice" class="com.servive.implement.ServiceImplement">
<property name="userDao" ref="UserDao"></property>
</bean>
//测试类
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao1 = (UserDao) app.getBean("userDao");
userDao1.save();
}
Spring重点配置
<Bean>标签
id属性: 在容器中Bean实例的唯一标识,不允许重复
class属性: 要实例化Bean的全限定名
scope属性: Bean的作用范围,常用都是singleton和prototype
<property>标签: 属性注入
name属性: 属性名称
value属性:注入普通属性值
ref属性: 注入对象引用值
<list>标签 <map>标签 <properties>标签 <constructor-arg>标签
<import>标签:导入其他的Spring的分文件