【Spring 基础】00 入门指南

news2024/11/26 20:22:45

【Spring 基础】00 入门指南

文章目录

  • 【Spring 基础】00 入门指南
    • 1.简介
    • 2.概念
      • 1)控制反转(IoC)
      • 2)依赖注入(DI)
    • 3.核心模块
      • 1)Spring Core
      • 2)Spring AOP
      • 3)Spring MVC
      • 4)Spring Data
      • 5)Spring Boot
    • 4.编写 Hello World
      • 1)创建 Maven 项目
      • 2)编写 Hello World 程序
      • 3)编写Spring 配置文件
      • 4)编写启动程序
      • 5)运行
    • 总结

Spring 框架是 Java 领域最最流行和最最强大的开发框架 没有之一

Spring 框架是 Java 领域最最流行和最最强大的开发框架 没有之一

Spring 框架是 Java 领域最最流行和最最强大的开发框架 没有之一

重要的事情,一定要说三遍。纵观历史在它的成长过程中,竞争对手确实存在,但是其对手最后都成为了陪衬!

1.简介

Spring 它为我们提供了广泛的功能,包括依赖注入、面向切面编程、数据访问、事务管理等等,使得 Java 应用程序的开发更加简便和高效。

下图来源:

https://docs.spring.io/spring-framework/docs/5.0.0.RC3/spring-framework-reference/overview.html

在这里插入图片描述

本文将为你提供一个简洁而全面的 Spring 框架入门指南,纯粹是为了能够快速掌握基础概念,并开始构建自己的 Spring 应用程序。

2.概念

Spring 框架是一个全面的Java应用程序开发框架,它提供了解决企业级应用开发问题的综合性解决方案。核心特性包括 控制反转(IoC)和 依赖注入(DI),使得组件之间的松散耦合成为可能。接下来就让我们先去了解一下 IoC 和 DI 的基本概念吧。

在这里插入图片描述

1)控制反转(IoC)

控制反转是一种设计原则,它将应用程序的控制权从应用程序代码中转移到外部容器。在 Spring 中,IoC 体现为将对象的创建和管理交给 Spring 容器,而不是由开发者手动管理。这通过使用 Spring 容器来实现,其中最核心的是 Bean 。

2)依赖注入(DI)

依赖注入是 IoC 的一种实现方式,它指的是将一个对象的依赖关系注入到对象本身,而不是在对象内部创建或查找依赖对象。Spring 通过 DI 来实现 IoC 确保对象之间的解耦。

3.核心模块

Spring 框架由多个模块组成,每个模块都提供不同的功能

以下是Spring的一些核心模块:

1)Spring Core

Spring Core 模块包括 IoC 容器、Bean 定义、Bean 的生命周期管理等。

2)Spring AOP

Spring AOP 模块支持面向切面编程,允许你在应用程序中定义横切关注点,并在需要时将它们应用到代码中。

3)Spring MVC

Spring MVC 模块是一个基于MVC(Model-View-Controller)设计模式的 Web 框架,用于构建 Web 应用程序。

4)Spring Data

Spring Data 模块简化了数据访问,支持多种数据存储,包括关系型数据库、NoSQL 数据库等。

5)Spring Boot

重磅嘉宾,往往都是压轴出场!

Spring Boot 模块用于简化 Spring 应用程序的开发和部署。它提供了自动配置、开箱即用的特性,使得构建独立的、生产级别的Spring应用变得更加容易。

4.编写 Hello World

现在让我们回到本节的主角,通过一个简单的实例来展示如何使用 Spring 框架构建一个基本的应用程序。

1)创建 Maven 项目

这里使用 [IDEA 工具]: (https://blog.csdn.net/yanyc0411/article/details/134746097) 开发

首先,点击 File -> New -> Project,输入项目信息(Name等),点击 Create 按钮

在这里插入图片描述

然后,打开 pom.xml 添加 maven 依赖(spring-context),一定要点 maven 的刷新按钮!

在这里插入图片描述

pom.xml

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

2)编写 Hello World 程序

编写一个简单的 Java 应用程序,打印 Hello World ,从 Spring 容器中获取 Bean 并调用其打印方法。

首先,在 java 上点击鼠标右键 -> New -> Java Class ,输入名称(此处直接把包创建出来啦),点击回车

然后,再打开 SpringDemo,添加打印 Hello World 的方法

在这里插入图片描述

SpringDemo.java

public class SpringDemo {
    public void hello() {
        System.out.println("Hello World");
    }
}

3)编写Spring 配置文件

创建一个 Spring 配置文件(例如:applicationContext.xml),定义一个简单的 Bean 。

首先,在 resources 上点击鼠标右键 -> New -> File ,输入名称,点击回车

然后,再打开 applicationContext.xml,添加 bean 信息

在这里插入图片描述

<?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/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- 定义一个Bean -->
    <bean id="springDemo" class="org.example.cheney.SpringDemo">
    </bean>
</beans>

4)编写启动程序

首先,在 org.example.cheney 包上点击鼠标右键 -> New -> Java Class,输入名称,点击回车

然后,再打开 App,添加 从 Spring 容器中获取 SpringDemo 实例,并执行 hello 方法的代码

在这里插入图片描述

App.java

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        String location = "applicationContext.xml";
        ApplicationContext context = new ClassPathXmlApplicationContext(location);
        // 从容器中获取Bean
        SpringDemo springDemo = (SpringDemo) context.getBean("springDemo");
        // 调用Bean的方法
        springDemo.hello();
    }
}

5)运行

点击 小绿三角,然后点击 Run xxx,最后就在控制台看到 Hello World 啦

在这里插入图片描述

输出结果:

Hello World

这只是 Spring 框架入门的简单示例。随着深入学习,你将能够利用 Spring 的强大功能构建更复杂的应用程序。

总结

通过本文,你已经了解了Spring框架的核心概念、模块和实际应用。以及详细的写了一个 SpringDemo 样例去打印 Hello World,要深入学习,建议查阅Spring的官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

组件之间传值

目录 1&#xff1a;组件中的关系 2&#xff1a;父向子传值 3&#xff1a;子组件向父组件共享数据 4&#xff1a;兄弟组件数据共享 1&#xff1a;组件中的关系 在项目中使用到的组件关系最常用两种是&#xff0c;父子关系&#xff0c;兄弟关系 例如A组件使用B组件或者C组件…

大师学SwiftUI第18章Part2 - 存储图片和自定义相机

存储图片 在前面的示例中&#xff0c;我们在屏幕上展示了图片&#xff0c;但也可以将其存储到文件或数据库中。另外有时使用相机将照片存储到设备的相册薄里会很有用&#xff0c;这样可供其它应用访问。UIKit框架提供了如下两个保存图片和视频的函数。 UIImageWriteToSavedPh…

CCF刷题记录 -- 202305-2:矩阵运算 --python解法

2023.12.7 主要算法 矩阵置换矩阵相乘 满分注意点 运算顺序&#xff0c;利用了矩阵运算法则中的&#xff08;A*B&#xff09;*c A*(B*C) # 矩阵置换 def zhihuan(a):b[]for i in range(d):c []for j in range(n):c.append(a[j][i])b.append(c)return b# 矩阵相乘 def ju_zh…

C# WPF上位机开发(通讯协议的编写)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 作为上位机&#xff0c;它很重要的一个部分就是需要和外面的设备进行数据沟通的。很多时候&#xff0c;也就是在这个沟通的过程当中&#xff0c;上…

SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码(一)——环境准备及项目配置

作者&#xff1a;超图研究院技术支持中心-于丁1 SuperMap iObject.NET三维场景拖拽框选实现详解及完整源代码&#xff08;一&#xff09;——环境准备及项目配置   三维场景框选是一种在三维空间中进行选择和操作的功能&#xff0c;它可以让使用者通过鼠标拖动来创建一个矩形…

stu06-VSCode里的常用快捷键

Alt Z&#xff1a;文字自动换行。当一行的文字太长时&#xff0c;可以使用。或者查看→自动换行Alt Shift ↓ &#xff1a;快速复制当前行到下一行Alt Shift ↑ &#xff1a;快速复制当前行到上一行Alt B&#xff1a;在默认浏览器中打开当前.html文件Ctrl Enter&#xf…

前端 Web Workers 简介

简介 以前我们总说&#xff0c;JS 是单线程没有多线程&#xff0c;当 JS 在页面中运行长耗时同步任务的时候就会导致页面假死影响用户体验&#xff0c;从而需要设置把任务放在任务队列中&#xff1b;执行任务队列中的任务也并非多线程进行的&#xff0c;然而现在 HTML5 提供了…

如何一个例子玩明白GIT

一个例子玩明白GIT GIT的介绍和教程五花八门&#xff0c;但实际需要用的就是建仓、推送、拉取等操作&#xff0c;这儿咱可以通过一个例子熟悉这些操作&#xff0c;一次性搞定GIT的使用方法学习。下面这个例子的内容是内容是建立初始版本库&#xff0c;然后将数据复制到 "远…

05-详解Nacos配置管理中心,配置拉取的方式,热更新,配置共享(优先级)的步骤

Nacos配置管理 新建配置文件 当微服务部署的实例越来越多时,如果需要修改微服务的配置就需要逐个修改配置文件并且还要重启关联的微服务十分繁琐还易出错 项目中的配置文件分为每个项目特有的配置,项目所公用的配置 每个项目特有的配置: 有些项目中需要但有些项目中又不需要…

初学者如何入门 Generative AI 之 Stable Diffusion 与 CLIP :看两篇综述,玩几个应用感受一下先!超多高清大图,沉浸式体验

文章大纲 4种 图片生成 的算法扩散模型的起源Stable DiffusionCLIP参考文献与学习路径A synthography of an astronaut riding a horse created in NightCafe Studio with Stable Diffusion XL (SDXL). Prompt is a photograph of an astronaut riding a horse with weight of …

lenovo联想拯救者Legion R7000P 2020H(82GR)笔记本原厂Windows10系统包

拯救者笔记本电脑原装出厂WIN10系统ISO镜像 链接&#xff1a;https://pan.baidu.com/s/1iPNXELRipKaAIR-yaq5HNg?pwdm27n 提取码&#xff1a;m27n 自带有所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;1…

【网络奇缘系列】计算机网络|数据通信方式|数据传输方式

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 这篇文章是关于计算机网络中数据通信的基础知识点&#xff0c; 从模型&#xff0c;术语再到数据通信方式&#…

Jmeter 请求签名api接口-BeanShell

Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明 有签名算法的api接口本地不好测试&#xff0c;使用BeanShell 扩展jar 包对参数进行签名&#xff0c;接口签名算法使用 sha512Hex 算法。签名的说明如下…

java实现网络聊天

网络聊天实现步骤&#xff08;从功能谈论方法&#xff09;&#xff1a; 客户端&#xff1a; 1.登录面板&#xff1a;注册提醒用户注册格式&#xff0c;登录账号密码不为空&#xff0c;点击登录的时候需要连接服务器端&#xff0c;启动聊天面板。&#xff08;监听用户点击登录…

详细介绍开源固件-TF-A

什么是TF-A&#xff1f; TF-A&#xff08;Trusted Firmware-A&#xff09;是一种用于嵌入式系统的开源固件&#xff0c;而不是Linux的一部分。TF-A主要用于ARM架构的处理器和设备&#xff0c;它提供了一组安全和可信任的软件组件&#xff0c;用于引导和初始化系统。 如下是其…

学习通【劳动通论】2023章节练习题

社会主义核心价值观24个字是&#xff1a;富强、民主、文明、和谐&#xff0c;自由、平等、公正、法治&#xff0c;爱国、敬业、诚信、友善。 1、“富强、民主、文明、和谐”&#xff0c;是我国社会主义现代化国家的建设目标&#xff0c;也是从价值目标层面对社会主义核心价值观…

基于Java Swing泡泡龙游戏(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

uniapp iOS离线打包——运行项目到模拟器报错?

运行项目、打包时报错问题 记录个人在开发过程中遇到的相关问题&#xff0c;后续有时间会不定时更新 文章目录 运行项目、打包时报错问题运行到模拟器报错解决方案 打包报错解决方案 运行到模拟器报错 解决方案 选中项目工程 —> Build Settings 滑动底部 —> User-Defi…

3.DevEco Studio安装鸿蒙手机app本地模拟器

配合Intel CPU启动模拟器 解决措施 打开任务管理器&#xff0c;在“性能”选项&#xff0c;检查CPU虚拟化是否已经启用。如果未启用&#xff0c;需要进入电脑的BIOS中&#xff0c;将CPU的“Intel Virtualization Technology”选项开启。 点击New Emulator 文档中心 解决措施…

048:利用vue-video-player播放m3u8

第048个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…