当前位置: 首页 > news >正文

Spring 概述与环境搭建

引言

Spring 框架是 Java 开发中最受欢迎的企业级应用框架之一,它提供了一整套用于构建企业级应用的工具和库。Spring 框架的核心功能包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)、事务管理等。本文将介绍 Spring 框架的基本概念,并指导读者如何搭建一个简单的 Spring 应用环境。

1. Spring 框架简介
1.1 什么是 Spring?

Spring 是一个开源的 Java 应用框架,由 Rod Johnson 在 2003 年创建。Spring 框架的设计目的是简化企业级应用的开发,减少样板代码,提高开发效率。Spring 框架的核心模块包括:

  • 核心容器:负责管理应用程序中的 Bean 和它们之间的依赖关系。
  • 数据访问/集成:提供对各种数据访问技术的支持,如 JDBC、ORM、OXM、JMS 等。
  • Web:提供 Web 应用开发的支持,包括 MVC 框架、WebSocket 支持等。
  • AOP:支持面向切面编程,用于实现日志记录、事务管理等功能。
  • 仪器化:提供对应用性能监控和诊断的支持。
  • 测试:提供对单元测试和集成测试的支持。
1.2 Spring 的主要特点
  • 轻量级:Spring 框架本身非常轻量级,可以轻松嵌入到任何 Java 应用中。
  • 控制反转(IoC):通过依赖注入(DI),Spring 可以管理对象的生命周期和配置。
  • 面向切面编程(AOP):Spring 提供了强大的 AOP 支持,可以将横切关注点(如日志、事务管理)与业务逻辑分离。
  • 声明式事务管理:Spring 提供了声明式事务管理,使得事务管理更加简单和灵活。
  • 与第三方框架的集成:Spring 可以轻松集成其他流行的框架,如 Hibernate、MyBatis、JPA 等。
2. Spring 的历史与发展
  • 2003年:Spring 框架首次发布。
  • 2004年:Spring 1.0 发布,标志着 Spring 成为一个成熟的企业级应用框架。
  • 2006年:Spring 2.0 发布,引入了新的配置方式和 AOP 支持。
  • 2008年:Spring 2.5 发布,引入了基于注解的配置。
  • 2011年:Spring 3.0 发布,引入了对 Java 5 的支持和新的模块。
  • 2013年:Spring 4.0 发布,引入了对 Java 8 的支持。
  • 2016年:Spring 5.0 发布,引入了响应式编程模型。
  • 2020年:Spring 5.3 发布,进一步完善了响应式编程和云原生支持。
3. Spring 生态系统概览

Spring 框架不仅仅是一个单一的框架,而是一个庞大的生态系统,包括多个子项目和工具,如:

  • Spring Boot:简化 Spring 应用的初始搭建以及开发过程。
  • Spring Data:简化数据访问层的开发。
  • Spring Security:提供全面的安全性服务。
  • Spring Cloud:提供一系列工具和服务,用于构建微服务架构。
  • Spring Batch:用于批处理任务的框架。
  • Spring Integration:用于企业集成模式的框架。
4. 环境搭建与第一个 Spring 应用
4.1 准备工作
  • Java 开发环境:确保已安装 JDK 8 或更高版本。
  • IDE:推荐使用 IntelliJ IDEA 或 Eclipse。
  • Maven:用于项目管理和依赖管理。
4.2 创建一个新的 Maven 项目
  1. 打开 IDE,选择创建一个新的 Maven 项目。
  2. 填写项目信息
    • Group Id:com.example
    • Artifact Id:spring-demo
    • Version:1.0-SNAPSHOT
  3. 添加 Spring 依赖:在 pom.xml 文件中添加 Spring 核心依赖。
<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>com.example</groupId><artifactId>spring-demo</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- Spring Core --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.10</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.10</version></dependency></dependencies>
</project>
4.3 创建 Spring 配置文件

src/main/resources 目录下创建一个名为 applicationContext.xml 的文件,用于配置 Spring 容器。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义一个 Bean --><bean id="helloWorld" class="com.example.HelloWorld"><property name="message" value="Hello, Spring!" /></bean></beans>
4.4 创建 Java 类

src/main/java/com/example 目录下创建一个名为 HelloWorld.java 的类。

package com.example;public class HelloWorld {private String message;public void setMessage(String message) {this.message = message;}public void getMessage() {System.out.println("Message : " + message);}
}
4.5 编写主程序

src/main/java/com/example 目录下创建一个名为 App.java 的类,作为程序的入口。

package com.example;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {// 加载 Spring 配置文件ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");// 获取 BeanHelloWorld helloWorld = (HelloWorld) context.getBean("helloWorld");// 调用方法helloWorld.getMessage();}
}
4.6 运行程序
  1. 运行 App.java 类:右键点击 App.java 类,选择“Run”或“Debug”。
  2. 查看输出:控制台应输出 Message : Hello, Spring!
5. 总结

通过本文,我们了解了 Spring 框架的基本概念和特点,并成功搭建了一个简单的 Spring 应用。接下来,我们将深入探讨 Spring 的核心概念,如依赖注入和面向切面编程。希望本文对你有所帮助,欢迎继续关注后续文章!

6. 扩展阅读
  • 官方文档:Spring Framework Reference Documentation
  • Spring 官网:Spring Official Website
  • 书籍推荐:《Spring in Action》、《Spring Boot in Action》

如果你有任何疑问或建议,欢迎在评论区留言交流!

相关文章:

  • 【AI知识点】度量学习(Metric Learning)
  • CommandLineRunner 和 ApplicationRunner
  • OceanBase技术解析: 执行器中的自适应技术
  • 您的计算机已被Lockbit3.0勒索病毒感染?恢复您的数据的方法在这里!
  • Android常用C++特性之std::abs
  • STM32 map 文件浅析
  • 互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?
  • 二叉树进阶oj题【二叉树相关10道oj题的解析和c++代码实现】
  • 2024.09.19 校招 实习 内推 面经
  • 简单vue指令实现 el-table 可拖拽表格功能
  • Java 图片合成
  • Unity3D 客户端多开
  • 5个python多线程简单示例
  • 一次实践:给自己的手机摄像头进行相机标定
  • 用于视觉的MetaFormer基线模型
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android 架构优化~MVP 架构改造
  • Android 控件背景颜色处理
  • Centos6.8 使用rpm安装mysql5.7
  • Elasticsearch 参考指南(升级前重新索引)
  • input实现文字超出省略号功能
  • JS函数式编程 数组部分风格 ES6版
  • mysql innodb 索引使用指南
  • php中curl和soap方式请求服务超时问题
  • Vim Clutch | 面向脚踏板编程……
  • 京东美团研发面经
  • 那些被忽略的 JavaScript 数组方法细节
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 学习HTTP相关知识笔记
  • 用jquery写贪吃蛇
  • ​业务双活的数据切换思路设计(下)
  • # include “ “ 和 # include < >两者的区别
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #《AI中文版》V3 第 1 章 概述
  • #QT(QCharts绘制曲线)
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $.ajax()
  • (1)无线电失控保护(二)
  • (152)时序收敛--->(02)时序收敛二
  • (ibm)Java 语言的 XPath API
  • (LLM) 很笨
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (笔记)M1使用hombrew安装qemu
  • (补充)IDEA项目结构
  • (二) 初入MySQL 【数据库管理】
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十三)Flink SQL
  • (推荐)叮当——中文语音对话机器人
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)Docker基本介绍