spring核心容器功能的理解
spring框架是一种粘合层框架,它是用来整合web层框架和持久层框架的
spring可以支持我们各个层级包括数据展示层,业务层和持久层都有对应的解决方案.
spring核心容器core container提供了创建对象管理对象的功能
core container包括bean,core,context,Expression Language
bean提供了整个框架最基本的部分,包括了IOC控制反转和依赖注入
Bean的创建用到了工厂模式:父类是BeanFactory
创建Bean的三种方式:
- 构造方法创建
<bean id="" class=""></bean>
构造方法创建bean是最常用
- 静态工厂创建bean:
先创建一个静态工厂:
public class StudentFactory {
public static Student createStudent() { return new Student(22,"张三");
}
}
在spring.xml中进行配置
<bean id="student" class="com.youzhong.factory.StudentFactory" factory-method="createStudent"/>
- 实例工厂创建bean:
创建实例工厂,提供实例方法返回student对象
public classStudent{
public Student createStudent() {
return new Student(1,"张三");
}
}
配置spring.xml
<bean id="studentFactory" class="com.youzhong.factory.StudentFactory"/>
<bean id="student" factory-bean="studentFactory" factory-method="createStudent"/>
IOC控制反转:之前是程序员创建对象,现在是IOC容器创建对象,控制权反转了
依赖注入有三种方式:
1.构造方法注入:
<bean id="student" class="com.youzhong.entity.Student"> <constructor-arg index="0" value="1"/> <constructor-arg index="1" value="张三"/> </bean>
index是索引,value是赋值
2.set方法注入:
<bean id="student" class="com.youzhong.entity.Student"> <property name="id" value="1"/> <property name="name" value="张三"/> </bean>
name要与实体类的set方法名匹配
3.注解注入:
注解注入只能对对象类型的属性依赖完成注入。
@Autowired @Resource 自动绑定
注解开关:<context:annotation-config/>
@Autowired 注解添加到对象类型属性上,按照类型绑定。
@Resource 注解添加到对象类型属性上,先根据名字绑定,再根据类型绑定。>
@Autowired是spring中的注解,@Resuorce是jdk中的注解