IOC理论
通过一个set接口注入对象,程序不再具有主动性,被动接受对象
public class UserServiceImpl implements UserService {
private UserDao userDao;
// 利用set进行动态实现值的注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void getUser() {
userDao.getUser();
}
}
用spring来管理对象
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--使用Spring来创建对象,他们称之为bean-->
<bean id="user" class="com.zjz.pojo.User">
<property name="name" value="Spring"/>
</bean>
</beans>
public class Test {
public static void main(String[] args) {
// 获取Spring的上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
// 通过上下文对象取出我们需要的bean,也就是对象
User user = (User) context.getBean("user");
System.out.println(user.toString());
}
}
依赖注入(DI)
- 依赖:bean对象的创建依赖于Spring容器
- 注入:bean对象中的所有属性,由容器来注入
spring中三种装配方式
- 在xml中显示装配
- 在Java中显示装配
- 隐式的自动装配bean,通过注解