springIoC总结
IoC称为控制反转(依赖注入)
- 引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
- 创建接口和类
public interface UserDao {
public List<User> getUserList();
}
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public List<User> getUserList() {
return userDao.getUserList();
}
}
- 依赖注入配置
<?xml version="1.0" encoding="UTF-8"?>
<!--
第一句指明xml的文件的版本及编码
xmlns: xml namespace(xml的命名空间,文件所需标签有固定的标签空间)
xmlns:xsi:xml的命名空间库实例(表明标签有固定标签库实例,这个是xml schema约束方式的必备)
xsi:schemalocation:标签库实例的具体库位置
-->
<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">
<bean id="userDao2" class="com.qf.dao.impl.UserDaoImpl2"></bean>
<bean id="userDao" class="com.qf.dao.impl.UserDaoImpl"></bean>
<bean id="userService" class="com.qf.service.impl.UserServiceImpl">
<!-- 依赖注入-->
<property name="userDao" ref="userDao"></property>
</bean>
</beans>
4.注入的两种方式
1)set注入
需要注入的类实现set方法
2)构造方法注入
实现注入类的构造方法
5.Bean的创建方式
1) 直接创建对象
利用反射直接创建bean对象
2)静态工厂方法创建
需要工厂类提供静态方法,交由spring容器调用该静态方法完成bean对象的创建。
3)非静态方法创建
Spring通过调用工厂类的普通方法创建对象,就意味着spring容器需要通过工厂类对象调用其普通方法。
4)注解配置
@Component
把普通类实例化的spring容器中,就可以直接调用了
@AutoWired注解:
自动装配,依赖的属性会告诉spring容器,spring容器会找到相应的对象自动注入,无需提供set方法。