Spring框架小结
1:什么是Spring
Spring是一个框架,核心技术是IOC,AOP,使用框架的目的主要是解耦合
Spring是一个容器,容器中存放的是java对象,需要做的是把java对象放到容器中
2:怎么使用Spring
Spring是一个容器,把项目中用的对象放入到容器中
让容器完成对象的创建,对象之间关系的管理(属性赋值)
我们在程序中从容器中获取要使用的对象
3:什么样的对象放到容器中
dao类,service类,controller类,工具类
Spring中默认的对象都是单例的。在容器中叫这个名称的对象只有一个。
4:不放到Spring容器中的对象
实体类对象,实体类数据来自数据库
servlet,listener,filter等
====================================
IOC(控制反转):
1:理论,思想,概念:指导开发人员在容器中,代码之外管理对象,给属性赋值,管理依赖
2:IOC技术实现使用的di(依赖注入):开发人员在项目中只需提供对象的名称,对象的创建,查找,赋值都由容器内部自己实现
3:Spring使用的di技术:底层使用的是反射机制
4:di给属性赋值
(1)set注入:Spring调用类的set方法实现属性赋值
以下为简单类型的set注入
<bean id="myStudent" class="com.bjpowernode.ba01.Student">
<property name="name" value="李四" />
<property name="age" value="21" />
</bean>
property name=“属性名” value=“属性的值”
以下为引用类型的set注入
<bean id="myStudent" class="com.bjpowernode.ba02.Student">
<property name="name" value="李四" />
<property name="age" value="21" />
<property name="school" ref="mySchool"/>
</bean>
property name=“属性名” ref=“bean的id”
======================================
(2)构造注入注入:Spring调用有参构造方法
以下为使用属性名的构造注入
<bean id="myStudent" class="com.bjpowernode.ba03.Student">
<constructor-arg name="myname" value="张三" />
<constructor-arg name="myage" value="20"/>
<constructor-arg name="mySchool" ref="mySchool" />
</bean>
constructor-arg name=“myname” value=“张三”
以下为使用index(构造方法形参的位置,从0开始)的构造注入
<bean id="myStudent2" class="com.bjpowernode.ba03.Student">
<constructor-arg index="0" value="李四" />
<constructor-arg index="1" value="24"/>
<constructor-arg index="2" ref="mySchool" />
</bean>
constructor-arg index=“0” value="李四