手撕Spring5框架(一)Spring5框架介绍

概述:Spring是一个轻量级、开源的JavaEE框架。

目的:解决企业应用开发的复杂性

核心部分:IOC(控制反转)和AOP(面向切面编程)。

既然说到了核心部分,那么就在说说Spring的所有组成部分:

组成部分如下图:

手撕Spring5框架(一)Spring5框架介绍_第1张图片

我们可以将Spring的组成部分分为八类:

  • Data Access/Integration:数据访问或者叫数据整合,主要负责包括对JDBC的封装,对象关系映射,封装JAVA对象与XML之间转换的功能,JAVA消息服务等。

  • Web: 网络模块的整合,主要负责包括网络通信,Web相关的开发,反应式Web应用(WebFlux),以及大名鼎鼎的Spring MVC也在这个模块中。

  • AOP:面向切面编程,提供AOP(面向切面编程)的实现

  • Aspects:提供的对AspectJ框架的整合

  • Instrument:整合模块,对服务器的代理接口

  • Messaging:为集成messaging api和消息协议提供支持

  • Core Container:核心工具包,Spring的重要组成部分,包括对类的处理、应用上下文的处理、以及Spring表达式的处理

  • Test:对JUNIT等测试框架的简单封装

通过Spring整合的这么功能我们可以总结出Spring的如下特点:

Spring的特点:

  • 方便解耦,简化开发

  • AOP编程的支持

  • 方便程序的测试,集成Junit

  • 方便整合各种其他优秀框架

  • 声明式事务的支持

  • 降低JavaEE API的使用难度

  • Java源码是经典的学习案例

通过一个入门案例,让我们对Spring 有一个更好的了解吧

1)环境搭建

创建Mavn项目,引入Spring5的坐标,当前使用的spring5版本:5.2.8

  • 如何引用Spring5的相关jar包?

访问地址:https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Artifacts

 

从图上我们可以看到Spring框架有20多个模块分别在不同的jar包管理,那么我们如果想创建一个简单的spring项目应该引入哪些jar包呢?

手撕Spring5框架(一)Spring5框架介绍_第2张图片

需要引入4个核心基础jar包和一个依赖的日志包common-logging、Junit单元测试框架,一共6个包

spring-core
spring-aop
spring-context
spring-expression
common-logging
junit

手撕Spring5框架(一)Spring5框架介绍_第3张图片

  • POM引入jar包


    4.0.0

    org.learn.spring5
    spring5-learn-1
    1.0-SNAPSHOT

        
            
            
                org.springframework
                spring-core
                5.2.8.RELEASE
            
            
            
            org.springframework
            spring-beans
            5.2.8.RELEASE
        
            
            
                org.springframework
                spring-context
                5.2.8.RELEASE
            
                
            
                org.springframework
                spring-expression
                5.2.8.RELEASE
            
                
            
                commons-logging
                commons-logging
                1.2
            
            
             
            
                junit
                junit
                4.12
            
            
        

项目引入的jar包最终如下:

手撕Spring5框架(一)Spring5框架介绍_第4张图片

2)案例演示,编写代码

1. 创建一个User类

package org.learn.spring5;

/**
 * User类
 */
public class User {

    /**
     * add方法
     */
    public void add(){
    System.out.println("add...........");
}
}

2.通过Spring的配置文件bean1.xml实例化一个对象



    
	
    

3.创建测试类

package org.learn.spring5;

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

public class TestSpring5 {
    @Test
    public void test() {
        //1.加载spring的配置文件
        ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
        //2.获取配置创建的对象
            //第一个参数是配置文件中配置的User对象的ID
        User user = context.getBean("user",User.class);
        System.out.println(user);
        user.add();
    }
}

程序的执行结果

org.learn.spring5.User@2c039ac6
add...........

综上所述我们完成了一个最简单的Spring项目,从代码上我们有没有对Spring些许认识呢?

思考一下,引入了Spring框架后,和我们之前开发的模式有什么区别呢?

通过代码结合上面讲述的Spring的特点,我们是不是可以发现Spring的引入后,可以方便的对对象进行解耦,传统的模式是我们自己手动是实例化创建对象,现在我们可以通过Spring的配置文件去实例化对象,然后在代码里直接调用该对象的方法就可以完成对象的方法执行。

现在是不是还是处于它不认识你,你也不太认识它的情况?没关系我们先了解一个项目是如何引入Spring框架,对Sring有一个简单的认知,实现和理解Spring给我们带来的方便操作后,我们继续往后学。

 

你可能感兴趣的:(手撕Spring5框架,spring,java,spring,boot)