【Spring详解一】Spring整体架构和环境搭建

server/2025/2/22 22:02:38/

一、Spring整体架构和环境搭建

1.1 Spring的整体架构

Spring框架是一个分层架构,包含一系列功能要素,被分为大约20个模块

  • Spring核心容器:包含Core、Bean、Context、Expression Language模块
    • Core :其他组件的基本核心,主要包含Spring框架基本的核心工具类
    • Beans :包含访问配置文件、创建和管理bean以及IOC/DI(控制反转和依赖注入)操作相关的所有类
    • Context :构建与Core和Beans基础之上,继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能
    • Expression Language :提供了一个强大的语言表达式用于在运行时查询和操纵对象。
  • Spring数据访问与集成
    • JDBC :提供了JDBC的抽象层
    • ORM :提供了JPA、JDO、Hibernate、iBatis 等ORM映射层
    • OXM :提供了Object/XML映射实现的抽象层,该实现包括JAXB、Castor、XMLBeans、JiBX和XStream
    • JMS(Java Messaging Service) :制造和消费消息
    • Transaction :编程和声明性的事务管理
  • Spring AOP:集成了所有AOP功能
  • Spring Web与远程调用
    • Web :提供了基础的 Web 开发的上下文信息,现有的Web框架,如JSF、Tapestry、Structs等,提供了集成
    • Web MVC:提供了 Web 应用的 Model-View-Controller 全功能实现。
    • Websocket

1.2 Spring环境搭建

1.2.1 安装git

Git - Downloads

1.2.2 安装Gradle

1.)下载安装包

下载地址:  Gradle Distributions

2)配置环境变量

#1.打开.bash_profile文件
open -e ~/.bash_profile
#2.在.bash_profile文件中配置环境变量
GRADLE_HOME=//Users/sunshine/Documents/software/gradle/gradle-7.5.1
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

3)查看Gradle版本

gradle -version

1.2.3 下载Spring源码

git clone git@github.com:spring-projects/spring-framework.git
git clone https://github.com/spring-projects/spring-framework.git

我使用的是5.3.x分支。

注意:要使用 git@github.com:spring-projects/spring-framework.git 需要配置ssh秘钥:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
//会生成私钥文件 id_rsa 和公钥文件 id_rsa.pub
//windows 一般在 C:\Users\Administrator\.ssh 目录,linux和mac在 ~/.ssh
//把生成的公钥拷贝到GitHub 的设置中的 SSH 密钥部分

如果使用 https 超时,可以增加 Git 的 HTTP/HTTPS 超时时间:

git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

如果使用了VPN代理服务器,确保 Git 的代理设置是正确的。你可以通过以下命令检查或设置代理:

//查看当前代理设置
git config --global --get http.proxy
//设置代理
git config --global http.proxy http://proxy_host:port
git config --global https.proxy https://proxy_host:port
//取消代理设置
git config --global --unset http.proxy
git config --global --unset https.proxy

1.2.4 配置IDEA

配置IDEA的本地gradle环境:

配置项目字节码版本:

最后在 Project Structure 配置sdk版本。

1.2.5 配置 Spring-Framework 源码的gradle仓库

配置gradle下载地址为本地(路径为gradle二进制文件压缩包路径):

//文件为 gradle/wrapper/gradle-wrapper.properties
distributionUrl=file:///F:/work_folder/gradle-7.5.1-bin.zip

配置仓库镜像 :

//根目录下文件\buildSrc\build.gradle
repositories {maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/central' }mavenCentral()gradlePluginPortal()
}

根目录下文件\build.gradle 的 mavenCentral() 之前加上:

maven { url 'https://maven.aliyun.com/repository/public/' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url "https://maven.aliyun.com/repository/spring-plugin" }
maven { url "https://maven.aliyun.com/repository/gradle-plugin" }

1.2.6 新建模块,测试环境

添加依赖 /spring-f2-test/build.gradle :

添加测试类:

public class User {String name;public User(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +'}';}
}@Configuration
public class JavaConfig {@Beanpublic User user(){return new User("lister");}
}public class TestApplication {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);User user = (User) context.getBean("user");System.out.println(user);}
}
//结果打印
User{name='lister'}


http://www.ppmy.cn/server/169174.html

相关文章

【设计模式】 代理模式(静态代理、动态代理{JDK动态代理、JDK动态代理与CGLIB动态代理的区别})

代理模式 代理模式是一种结构型设计模式,它提供了一种替代访问的方法,即通过代理对象来间接访问目标对象。代理模式可以在不改变原始类代码的情况下,增加额外的功能,如权限控制、日志记录等。 静态代理 静态代理是指创建的或特…

Office hour 2-自然语言处理

主要涉及**自然语言处理(NLP)**的多个方面,包括发展历程、神经网络模型、大语言模型、以及实际应用。 01 - NLP的发展历程 1. 1950 - 1969: • 机器翻译研究:NLP的研究始于机器翻译,探索计算机如何处理和…

以用户为中心,汽车 HMI 界面设计的创新之道

在汽车智能化飞速发展的当下,汽车 HMI(人机交互界面)成为连接人与车的关键桥梁。如何打造出优秀的 HMI 界面?答案是以用户为中心,探索创新之道。 用户需求是汽车 HMI 界面设计的指南针。在设计前期,深入调…

Spring-GPT智谱清言AI项目(附源码)

一、项目介绍 本项目是Spring AI第三方调用整合智谱请言(官网是:https://open.bigmodel.cn)的案例,回答响应流式输出显示,这里使用的是免费模型,需要其他模型可以去 https://www.bigmodel.cn/pricing 切换…

深入理解Redis

一、引言 在当今高并发、大数据量的互联网应用场景中,提升系统性能和响应速度是后端开发的关键挑战之一。Redis作为一款高性能的内存数据库,以其出色的读写速度、丰富的数据结构和强大的功能特性,成为Java后端开发中不可或缺的缓存和数据存储…

Spring Boot 实战:轻松实现文件上传与下载功能

目录 一、引言 二、Spring Boot 文件上传基础 (一)依赖引入 (二)配置文件设置 (三)文件上传接口编写 (一)文件类型限制 (二)文件大小验证 &#xff0…

iOS开发书籍推荐 - 《高性能 iOS应用开发》(附带链接)

引言 在 iOS 开发的过程中,随着应用功能的增加和用户需求的提升,性能优化成为了不可忽视的一环。尤其是面对复杂的界面、庞大的数据处理以及不断增加的后台操作,如何确保应用的流畅性和响应速度,成为开发者的一大挑战。《高性能 …

深入解析 Flutter 性能优化:从原理到实践

深入解析 Flutter 性能优化:从原理到实践的全面指南 Flutter 是一个高性能的跨平台框架,但在开发复杂应用时,性能问题仍然可能出现。性能优化是开发高质量 Flutter 应用的关键。本篇博客将从 Flutter 的渲染原理出发,结合实际场景…