前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建一个简单的Spring Demo

搭建一个简单的Spring Demo

作者头像
阿提说说
发布2024-01-23 08:26:26
730
发布2024-01-23 08:26:26
举报
文章被收录于专栏:Java技术进阶Java技术进阶

要学习Spring 源码,一个是从Spring GitHub 上去down源码,然后倒入IDEA编译,但这种方法费时费力,如果你不需要对Spring 源码进行修改后,再编译的话,直接搭建一个Spring Demo 的Maven项目,引入Spring 对应依赖,下载源码包,通过Demo来学习。 本专栏就通过该Demo来学习Spring 源码,并将相关内容记录到该专栏中。

Spring Demo项目地址:https://github.com/jujunchen/Spring-Demo

pom.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.31</version>
        </dependency>
    </dependencies>

</project>

这里引入了spring-context依赖,做为最基本的spring依赖,因为其包含了主要的Spring特性spring-beans、spring-aop、spring-context、spring-core、spring-expression、spring-jcl

Test

Bean.java

代码语言:javascript
复制
package com.spring.test.demo.bean;

import org.springframework.stereotype.Component;

@Component
public class Bean {

    public void print() {
        System.out.println("Spring Test");
    }
}

SpringTest.java

代码语言:javascript
复制
package com.spring.test.demo;

import com.spring.test.demo.bean.Bean;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class SpringTest {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
        applicationContext.register(Bean.class);
        applicationContext.refresh();
        Bean bean = applicationContext.getBean(Bean.class);
        bean.print();
    }
}

测试结果

image.png
image.png

Spring 模块

进度

模块

描述

spring-aop

要使用AOP相关的功能(事务、切面)需要包含该模块

spring-aspects

包含AspectJ AOP库进行高级集成的所有类

spring-beans

包含对Spring bean进行操作的类

spring-beans-groovy

对Spring bean进行操作的Groovy类

spring-context

包含Spring Core提供的许多扩展类,如ApplicationContext

spring-context-indexer

包含一个索引器实现,它提供对META-INF/spring.components 中定义的候选项的访问功能,但核心类CandidateComponentsIndex 并不能再外部使用

spring-context-support

该模块是对spring-context模块的进一步扩展,在用户界面方面,有一些用于支持邮件并与模块引擎集成的类,还包括与各种任务执行和调度库(CommonJ和Quartz)的集成

spring-core

主要模块,其他Spring模块都会依赖该模块

spring-expression

包含SpEL表达式的支持类

spring-instrument

包含用于JVM启动的Spring工具代理,如果在Spring应用程序中使用AspectJ实现加载织入,那么该模块是必需的

spring-jcl

日志框架

spring-jdbc

包含所有的JDBC支持类

spring-jms

所有JMS支持类

spring-messaging

提供消息传递的基础结构和协议

spring-orm

扩展了Spring的标准JDBC功能集,支持流行的ORM工具,包含Hibernate、JDO、JPA和数据映射器IBATIS。该JAR文件中的许多类都依赖于spring-jdbc JAR文件中所包含的类,因此也需要把它包含在程序中

spring-oxm

为Object/XML映射OXM提供支持,用于抽象XML编组和解组以及支持Castor、JAXB、XMLBeans和XStream等常用工具的类都包含在此模块中

spring-test

Spring提供的帮助测试程序的包

spring-tx

提供支持Spring事务的所有类

spring-web

包含Web程序中使用的所需核心类

spring-web-reactive

响应式模型的核心接口和类

spring-webmvc

Spring自己的MVC框架

spring-websocket

Spring对WebSocket的支持类

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pom.xml
  • Test
    • Bean.java
      • SpringTest.java
        • 测试结果
        • Spring 模块
          • 进度
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档