Spring5 框架概述

Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。

Spring总结起来优点如下:

  • 低侵入式设计,代码的污染极低。
  • 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺。
  • Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦。
  • Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用。
  • Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
  • Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。

Spring框架结构组成图

image.png

Spring核心

  1. IOC:控制反转,把创建对象的过程交给spring进行管理
  2. AOP:面向切面编程,不修改源代码进行功能的增强

Spring5 入门案例

下载Spring

https://repo.spring.io/release/org/springframework/spring/
下载最新稳定版

创建普通Java工程

image.png

导入Spring5相关jar

需要导入四个核心包
image.png

创建一个类,在这个类中创建测试方法

package life.wangquanguo.spring;

public class User {
    public void add(){
        System.out.println("add........");
    }
}

在src下创建spring配置文件

<?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="user" class="life.wangquanguo.spring.User"></bean>
</beans>

编写测试代码

package life.wangquanguo.spring;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringTest {

    @Test
    public void test(){
        //获取spring上下文对象
	//ClassPathXmlApplicationContext用于获取当前项目路径下的配置文件
	//FileSystemXmlApplication用于获取系统绝对路径下的配置文件
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean1.xml");
        //获取bean对象
        User user = applicationContext.getBean("user",User.class);
        user.add();
    }
}

运行测试方法发现User类中的方法已经被调用

IOC的概念和原理

什么是IOC

IOC就是控制反转,把手动创建对象的过程交给spring,上面入门案例就是IOC的实现,为了降低耦合

IOC底层原理

IOC思想就是基于IOC容器实现,IOC底层容器就是一个工厂

  1. 通过xml解析获取配置文件中需要创建的对象
  2. 使用工厂模式,将需要创建对象的class属性传入工厂
  3. 使用反射创建对象

BeanFactory接口

Spring提供IOC容器的两种方式(2个接口)

  1. BeanFactory:IOC容器基本实现接口,是Spring内部使用的接口
    • 加载配置文件时不会去创建接口,只有在使用对象时才会去创建接口
  2. ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员去使用
    • 加载配置文件时就会把在配置文件对象进行创建

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议