Spring
学习内容
- Spring框架概述
- IOC容器
- AOP
- JdbcTemplate
- 事务管理
- Spring5新特性
Spring框架概述
- Spring是一个轻量级开源的JavaEE框架
- Spring可以解决企业应用开发的复杂性
- Spring有两个核心部分:IOC和AOP
- IOC:控制反转,把创建对象过程交给Spring进行管理
- AOP: 面向切面,不修改源代码进行功能增强
- Spring特点:
- 方便解耦,简化开发
- AOP编程支持
- 方便程序测试
- 方便和其他框架进行整合
- 方便进行事务操作
- 降低API开发难度
下载地址:https://repo.spring.io/release/org/springframework/spring
编写第一个Spring程序
-
先建立libs目录,在项目下新建libs目录,并把5个相关的jar包复制到libs目录下。5个jar包如下图。
-
点击
File
找到Project Structure
中的Modules
中的Dependencies
,点击右边的加号,选择JARs or directories
,然后找到刚刚复制进来的5个jar包,最后点击Apply
即可。 -
在src下新建一个Spring的配置文件,通过配置文件来创建对象。这里使用的是xml类型的配置文件。这里配置文件的名称为bean1.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"> <!-- 配置User对象创建 --> <bean id="user" class="top.lukeewin.spring5.User"></bean> </beans>
-
在src中新建一个包,名为top.lukeewin.spring5,然后在包中新建一个User类。User类中的代码如下。
package top.lukeewin.spring5;
public class User {
public void add() {
System.out.println("add...");
}
}
- 编写测试代码。
package top.lukeewin.testdemo;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import top.lukeewin.spring5.User;
public class TestSpring5 {
@Test
public void testAdd() {
//1.加载Spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
//2.获取配置创建的对象
User user = context.getBean("user", User.class);
System.out.println(user);
user.add();
}
}
-
最后就可以运行该Spring程序了。运行结果如下图。
IOC概念和原理
- 什么是IOC
- 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。
- 使用IOC目的:为了降低耦合度
- 上面做的入门案例就是IOC实现
- IOC底层原理
- xml解析、工厂模式、反射
- 画图讲解IOC底层原理
IOC
-
IOC思想基于IOC容器完成,IOC底层就是对象工厂
-
Spring提供IOC容器实现两种方式:(两个接口)
-
BeanFactory
: IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用。加载配置文件时,不会创建对象,在获取对象时,才会创建对象。
-
ApplicationContext
:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用在加载配置文件时候就会创建对象。
-
-
ApplicationContext
中的主要实现类ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
IOC操作Bean管理
- 什么是Bean管理?
- Spring创建对象
- Spring注入属性
- Bean管理操作有两种方式
- 基于xml配置文件方式实现
- 基于注解方式实现
Q.E.D.