Spring简介
Spring 框架是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,是 Java 应用最广的框架
Spring优点:
- 低侵入 / 低耦合 (降低组件之间的耦合度,实现软件各层之间的解耦)
- 声明式事务管理(基于切面和惯例)
- 方便集成其他框架(如MyBatis、Hibernate)
- 降低 Java 开发难度
- Spring 框架中包括了 J2EE 三层的每一层的解决方案(一站式)
Spring框架的核心功能有两个:
- Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。
- Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。
Spring框架的组成结构图如下所示:
Spring IoC
IoC:Inverse of Control(控制反转)
是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。
- 正控:若要使用某个对象,需要自己去负责对象的创建
- 反控:若要使用某个对象,只需要从 Spring 容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了Spring框架
编写第一个Spring程序
1.创建Spring项目并导入相关jar包
一个项目要用到spring框架首先就需要导入相关jar包,使用maven可以很方便的导入jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
将上述代码复制到pom.xml就能自动导入Spring的相关jar了
2.新建实体类
我这里就随便建了一个Student类用于测试
package SpringMb.entity;
public class Student {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
3.编写Spring配置文件
通过 xml 文件配置的方式装配我们的 bean
<?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="student" class="SpringMb.entity.Student">
<property name="name" value="hun"/>
<property name="id" value="1"/>
</bean>
</beans>
bean的配置
id
是唯一标识符
class
是全限定类名
这样我们就把刚刚建的实体类放到了spring里
4.建立测试类
package SpringMb;
import SpringMb.entity.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App
{
public static void main( String[] args ){
ApplicationContext context = new ClassPathXmlApplicationContext("Spring-config.xml");
Student student = (Student) context.getBean("student");
System.out.println(student);
}
}
程序主要是通过Spring容器来访问容器中的Bean,ApplicationContext是Spring容器最常用的接口,该接口有如下两个实现类:
- ClassPathXmlApplicationContext: 从类加载路径下搜索配置文件,并根据配置文件来创建Spring容器。
- FileSystemXmlApplicationContext: 从文件系统的相对路径或绝对路径下去搜索配置文件,并根据配置文件来创建Spring容器。
然后我们就能拿到xml配置的bean
总结:
传统的方式:
- 通过new 关键字主动创建一个对象
IOC方式:
- 对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 IOC是反转控制 (Inversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。