Introducción a Spring5.x y entorno de lectura de código fuente Spring coincidente

ver fuente

Tabla de contenido

arquitectura spring5.x

introducción de la versión

compilación del código fuente

elementos de configuración

entrar en compilar


arquitectura spring5.x

915afafa63442e0c79281e26d69c81d6.png

Acceso/integración de datos: módulo de acceso/integración de datos: proporciona soporte para operaciones de origen de datos, incluido soporte para jdbc, marco de mapeo orm, análisis xml, cola de mensajes y gestión de transacciones.

Módulo web: proporciona soporte para aplicaciones web

Módulo de contenedor central Core Container: implementa el contenedor de resorte, proporciona principalmente la función IoC/DI

Módulo AOP: proporciona soporte para la programación orientada a aspectos (AOP)

Módulo de prueba de prueba: proporciona soporte para la prueba

Estudio de documentación en línea:

http://docs.jcohy.com/docs/spring-framework/5.3.22/html5/zh-cn/index.html

Preparativos para construir un ambiente de lectura

nombre

información

Observación

versión experta

3.x

versión idea

2019 o superior

versión jdk

1.8+

Generalmente usa 1.8

versión de código fuente de primavera

V5.2.7 (se puede usar 5.x)

Dirección: https://github.com/spring-projects/spring-framework/tree/v5.2.7.RELEASE

grado

Está bien usar la idea

Versión Spring: https://github.com/spring-projects/spring-framework/tree/v5.2.7.RELEASE

b27fc1ac173f1948147f089d42626262.png

43ca961c9f02e16d9a3a9cf10e455b0f.png

Nota: si git es lento, puede descargarlo manualmente.

d5f21c01db88026c79df21c6a4f5303d.png

introducción de la versión

nombre

describir

Observación

alfa

Para la versión de prueba interna, hay muchos errores, es inestable y se actualiza constantemente.

generalmente no se usa

beta1, beta2...

Para la versión beta pública, es más inestable que la versión alfa y la función se actualiza constantemente.

generalmente no se usa

RC

Se usa para la versión candidata, después de varias versiones beta, es relativamente estable y se usa para prepararse para el lanzamiento oficial después de corregir errores.

uso de prueba

M1, M2..

Las versiones Milestone son generalmente versiones con mejoras importantes.

menos usado

GA, LIBERAR, Estable, Final

Para lanzamientos de producción, lanzamientos estables.

versión de uso final

compilación del código fuente

elementos de configuración

Descomprima el paquete descargado y abra la ubicación: spring-framework-5.2.7.RELEASE\gradle\wrapper

765f7e4dab0582b324b9bbdc081fe1b3.png

009f13eec7ae94472ddf6add91767795.png

envoltorio gradle abierto

dcd2e6c8bf23c80c44ed28f70a1083e1.png

Modifique la configuración: build.gradle bajo pring-framework-5.2.7.RELEASE La nueva configuración es la siguiente, agregue el almacén de Aliyun

repositories {
      maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
            maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
      mavenCentral()
      maven { url "https://repo.spring.io/libs-spring-framework-build" }
    }

Proteja el id 'io.spring.gradle-enterprise-conventions' versión '0.0.2' debajo de los complementos de código para evitar fallas al descargar gradle.ebfb8be528d982c5f1bda8bb6b14d6fc.png

entrar en compilar

1. Compilar

Abra cmd en el directorio raíz y ejecute de la siguiente manera:

gradlew :spring-oxm:compileTestJava

El resultado es el siguiente:

7cbf47254914606089c0cfba0d297631.png

Consejo: CONSTRUIR CON ÉXITO significa éxito.

2. Importar idea para compilar

Importar idea para compilar.

cbf7050b97d56eec8b1cdc218bfb423c.png

Necesito esperar mucho tiempo para compilar (un poco largo)

40ffe4e7be4f9e2f2b78b81dff2e4e04.png

Una vez completada la compilación

0643071d7504fdf5db31b61d27c8c3d7.png

3. Finalmente prueba el código

nuevo modulo

f1fd6687625d589bf75acb0a2311440a.png

seleccionar gradle

d31b827e1c6411ba85e4a871ac4bcc26.png

Complete el nombre del módulo personalizado

43ee1f1833a7fd9ed167b04fc00aa381.png

Abra build.gradle (spring-hong-testing) y agregue dependencias de la siguiente manera:

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile(project(":spring-context"))
}
añadir código de prueba

177d56069d1e206b05f01eeb42914c9a.png

package com.hong.service;

/**
 * @ClassName TestIService
 * @Description 测试服务
 * @Author csh
 * @Date 2023/1/11 14:37
 */
public interface TestIService {
  void testSpringSourceBuild();
}
package com.hong.service.impl;

import org.springframework.stereotype.Service;
import com.hong.service.TestIService;

/**
 * @ClassName TestIServiceImpl
 * @Description spring验证类实现
 * @Author csh
 * @Date 2023/1/11 14:39
 */
@Service
public class TestIServiceImpl implements TestIService {
  @Override
  public void testSpringSourceBuild() {
    System.out.println("spring build success!");
  }
}
package com.hong;

import com.hong.service.impl.TestIServiceImpl;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * @ClassName TestMain
 * @Description 测试
 * @Author csh
 * @Date 2023/1/11 14:45
 */
@Configuration
@ComponentScan("com.hong")
public class TestMain {

  public static void main(String[] args) {
    AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext((TestMain.class));
    TestIServiceImpl bean = applicationContext.getBean(TestIServiceImpl.class);
    bean.testSpringSourceBuild();
  }
}

resultado

3d2b4e7ce04e816552a825c272975e1a.png

> Task :spring-hong-testing:classes

> Task :spring-hong-testing:TestMain.main()
spring build success��

BUILD SUCCESSFUL in 50s
35 actionable tasks: 2 executed, 33 up-to-date
The remote build cache was disabled during the build due to errors.
14:57:52: Task execution finished 'TestMain.main()'.

Finalmente, después de configurar el entorno anterior, puede aprender del código fuente. Artículo de referencia: https://blog.csdn.net/weixin_39786760/article/details/125133008https://www.cnblogs.com/lusaisai/p/11686352.htmlhttps://www.jianshu.com/p/949bb16813a2

Supongo que te gusta

Origin blog.csdn.net/qq_16498553/article/details/129117020
Recomendado
Clasificación