1.Spring概述
使用Spring框架开发可以把Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,有效降低代码的耦合度,极大方便项目的后期维护,升级和扩展。
2.IOC全称: Inversion of Control(控制反转)
把对象(所有)的控制权交给Spring容器。
JVM有垃圾回收机制,目前new出来的对象不会被回收,会一直占用内存。
使用Spring之前,如果想要使用一个对象的话,通过new的方式去获取,使用Spring以后,我们可以直接从Spring容器中去获取对象。
3.在resources路径下创建applicationContext.xml配置文件
<?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">
<bean id="stu" class="com.zyh.spring.pojo.Student">
<property name="stuId" value="101"></property>
<property name="stuName" value="张三"></property>
</bean>
</beans>
4.Spring中getBean的三种方式
- 通过getBean(String beanId)
- 通过getBean(Class clazz) 通过Class方式获取对象
- getBean(String beanId,Class clazz) 通过id和class获取对象
5.配置文件的解读
通过配置bean标签来完成对象的管理
id:对象名
class:对象的模板类(所有交给IOC容器来管理的类必须要有无参构造函数,因为Spring底层是通过反射机制来创建对象,调用的是无参构造)
对象的成员变量通过property标签完成赋值
name:成员变量名
value:成员变量值(基本数据类型,String可以直接赋值,如果是其他引用类型不可以通过value赋值)
ref:把IOC中的另一个bean赋给当前成员变量(DI)
6.Spring中的bean
bean是根据scope来生成的,表示bean的作用域,scope有4种类型
-singleton,单例,表示通过Spring容器获取的对象是唯一的,是默认值。
-prototype,原型,表示通过Spring容器获取的对象是不同的。
-request,请求,表示在异常HTTP请求内有效
-session,会话,表示在一个用户会话内有效
7.Spring IOC 自动装配 autowire
自动装载是Spring提供的一种更加简便的方式来完成DI,不需要手动配置property,IOC 容器会自动选择bean来完成注入。
自动装载有两种方式:
byName:通过属性名完成自动装载
byType:通过属性对应的数据类型完成自动装载
8.@Component注解是把标注的类加载到IOC容器中,实际开发中可以根据业务需求分别使用
@Controller,@Service,@Repository注解来标注控制层类,业务层类,持久层类