Tabla de contenido
arquitectura spring5.x
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
Nota: si git es lento, puede descargarlo manualmente.
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
envoltorio gradle abierto
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.
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:
Consejo: CONSTRUIR CON ÉXITO significa éxito.
2. Importar idea para compilar
Importar idea para compilar.
Necesito esperar mucho tiempo para compilar (un poco largo)
Una vez completada la compilación
3. Finalmente prueba el código
nuevo modulo
seleccionar gradle
Complete el nombre del módulo personalizado
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
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
> 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