一:
1.Spring几大核心功能:
IOC/DI 控制反转/依赖注入
AOP 面向切面编程
声明式事务
2.Spring 框架的的runtime
2.1test:Spring提供测试功能
2.2Core Container:核心容器。Spring启动最基本条件
2.2.1Beans:Spring负责创建类对象并管理对象
2.2.2Core:核心类
2.2.3Context:上下文参数。获取外部资源或管理注解等
2.2.4SpEL:experssion.jar
2.3AOP:实现aop功能需要依赖
2.4Aspects:切面AOP依赖的包
2.5Data Access/Integration:Spring 封装数据访问层相关内容
2.5.1JDBC:Spring对JDBC封装之后的代码
2.5.2ORM:封装了持久层框架的代码。例如:Hibernate
2.5.3Transations:对应spring-tx.jar。声明式事务使用。
2.6web:当Spring完成web相关功能时需要。
3.Spring框架中重要概念
3.1 容器(Container):Spring当做一个大容器
3.2 BeanFactory 接口,老版本
3.2.1 新版本中ApplicationContext接口,是BeanFactory 的子接口。BeanFactory 的功能在ApplicationContext中都有。
4.从Spring3开始把Spring框架的功能拆分为多个jar。
二:IOC
1.中文名称:控制反转
2.英文名称:Inversion of Control
3.IOC是什么
3.1IoC完成的事情原先由程序员主动通过new实例化对象事情,转交给Spring负责
3.2控制反转中控制指的是:控制类的对象
3.3控制反转中反转指的是:转交给Spring负责
3.4IoC最大的作用:解耦
3.4.1程序员不需要管理对象。解除了对象管理与程序员之间的耦合。
三:
1.导入jar包
2.在src下新建applicationContext.xml
2.1文件名称和路径自定义
2.2记住spring容器ApplicationContext,applicationContext.xml配置的信息最终存储到了ApplicationContext容器中
2.3Spring的配置文件基于schema(.xsd),理解为dtd的升级版,具有更好的扩展性(xmlns)
2.4配置文件中只需要引入基本schema
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--id 表示获取到对象标识 class 创建哪个类的对象 --> <bean id="peo"class="com.bjut.pojo.People"/> </beans>
2.4.1 通过<bean/> 创建对象
2.4.2默认配置文件被加载时创建对象
三.编写测试方法
packagecom.bjut.text; importorg.springframework.context.ApplicationContext; importorg.springframework.context.support.ClassPathXmlApplicationContext; importcom.bjut.pojo.People; public classText { public static voidmain(String[] args) { //People peo = new People(); ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); People people = ac.getBean("peo",People.class); System.out.println(people); } }
1.1getBean(“<bean>标签ID值”,返回值类型);
如果没有第二个参数,默认是Object
1.2getBeanDefinitionNames(),spring 容器中目前所管理的所有对象
四.Spring创建对象的三种方法:
1.通过构造方法创建
1.1无参构造创建:默认情况
1.2有参构造创建:需要明确配置
1.2.1 需要在类中提供有参构造方法
1.2.2 在 applicationContext.xml 中设置调用哪个构造方法创建对象
1.2.2.1 如果设定的条件匹配多个构造方法执行最后的构造方法
1.2.2.2 index : 参数的索引,从 0 开始
1.2.2.3 name: 参数名
1.2.2.4 type:类型(区分开关键字和封装类 int 和 Integer)
<bean id="peo"class="com.bjsxt.pojo.People"> <!--ref 引用另一个 bean value 基本数据类型或String 等 --> <constructor-arg index="0"name="id"type="int"value="123"></constructor-arg> <constructor-arg index="1"name="name"type="java.lang.String"value="张三 "></constructor-arg> </bean>
2.实例工厂
2.1 工厂设计模式:帮助创建类对象.一个工厂可以生产多个对象.
2.2 实例工厂:需要先创建工厂,才能生产对象
2.3 实现步骤:
2.3.1 必须要有一个实例工厂
public classPeopleFactory
{ publicPeople newInstance()
{ return new People(1,"测试"); } }
2.3.2 在 applicationContext.xml 中配置工厂对象和需要创建的对象
<bean class="com.bjsxt.pojo.PeopleFactory"></bean> <bean factory-bean="factory"factory-method="newInstance"></bean>
3.静态工厂
3.1 不需要创建工厂,快速创建对象. 3.2 实现步骤
3.2.1 编写一个静态工厂(在方法上添加 static)
public classPeopleFactory { public staticPeople newInstance() { return new People(1,"测试"); } }
3.2.2 在 applicationContext.xml 中
<bean class="com.bjsxt.pojo.PeopleFactory"
factory-method="newInstance"></bean>