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

【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 应用程序的开发更加简便和高效。

在这里插入图片描述

本文将为你提供一个简洁而全面的 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 工具 开发

首先,点击 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/beanshttp://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);// 从容器中获取BeanSpringDemo springDemo = (SpringDemo) context.getBean("springDemo");// 调用Bean的方法springDemo.hello();}
}

5)运行

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

在这里插入图片描述

输出结果:

Hello World

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

总结

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

http://www.lryc.cn/news/262108.html

相关文章:

  • BIM 技术:CIM (City Information Modeling) 1-7 级
  • c++ websocket 协议分析与实现
  • kali虚拟机无网络
  • Unity2023.3(Unity6)版本开始将可以发布WebGPU
  • 计算机网络期末考试A卷及答案
  • <蓝桥杯软件赛>零基础备赛20周--第10周--二分
  • C++友元类,工厂模式和继承的融合案例
  • 使用 ?? 重新定义逻辑以获得更严格、更安全的 JavaScript 默认值
  • Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
  • Python Django Suit:构建现代化的Django后台管理
  • 电子学会C/C++编程等级考试2021年09月(六级)真题解析
  • SpringBoot 源码解析
  • dockerfile---创建镜像
  • Raspberry PI + Codesys + EtherCAT步进驱动ECR60 Motion功能测试
  • 03 Temporal 详细介绍
  • 【算法】【动规】乘积为正数的最长子数组长度
  • Kubernetes实战(十四)-k8s高可用集群扩容master节点
  • Spring之容器:IOC(1)
  • 【.Net 6.0--通用帮助类--ConvertHelper】
  • 【加解密】报文签名与加解密,MD5,RSA,AES使用案例(基于 Java)
  • 新建vue3项目
  • 出现 Error:Unable to access jarfile xxxx\target\nacos-server.jar 解决方法
  • 记录一次API报文替换点滴
  • PMP项目管理 - 沟通管理
  • fckeditor编辑器改造示例:增加PRE,CODE控件
  • 风速预测(五)基于Pytorch的EMD-CNN-LSTM模型
  • 单元测试二(理论)-云计算2023.12-云南农业大学
  • QModelIndex 是 Qt 框架中的一个类,用于表示数据模型中的索引位置
  • 前端实现一个时间区间内,再次单选功能,使用Antd组件库内日历组件Calendar
  • 【运维笔记】Hyperf正常情况下Xdebug报错死循环解决办法