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

java微服务(Springboot篇)——————IDEA搭建第一个Springboot入门项目

在正文开始之前我们先来解决一些概念性的问题

🍕🍕🍕 问题1:Spring,Spring MVC,Spring Boot和Spring Cloud之间的区别与联系?

🍬🍬🍬(1)Spring框架
Spring框架是一个开源的Java企业级应用开发框架,它的核心思想是通过**依赖注入(DI)面向切面编程(AOP)**来降低组件间的耦合性,增强代码的可维护性和可测试性。

核心内容:
💙IoC容器(控制反转):用于管理应用中的对象及其生命周期,提供依赖注入(DI)功能。
💙AOP模块(面向切面编程):提供声明式事务管理、日志记录等功能。
💙数据访问:简化了JDBC的使用,提供对ORM框架(如Hibernate)的支持。
💙事务管理:支持声明式和编程式的事务管理。
💙消息服务:提供JMS(Java Message Service)支持。
💙Web框架:为Web应用提供灵活的支持。

🍬🍬🍬(2)Spring MVC
Spring MVC是Spring框架中的一个Web模块,它实现了MVC(Model-View-Controller)设计模式。Spring MVC提供了一个灵活的方式来处理Web请求,解耦了请求的处理与业务逻辑。

核心组件:

💙DispatcherServlet:中央调度器,接收所有的HTTP请求并将其转发给相应的处理器(Controller)。
💙Controller:处理请求并返回相应的模型数据。
💙ModelAndView:封装了模型数据和视图信息,用于将模型数据传递到视图层。
💙View Resolver:根据返回的视图名解析实际的视图资源。

🍬🍬🍬(3)Spring Boot
Spring Boot是基于Spring的一个开源框架,旨在简化Spring应用的开发过程。它通过约定优于配置(Convention over Configuration)的方式,减少了开发者的配置工作,并提供了一些开箱即用的功能。

Spring Boot的特点:
💙简化配置:通过application.properties或者application.yml进行配置,避免了繁琐的XML配置。
💙嵌入式容器:内置Web容器(如Tomcat、Jetty、Undertow),开发者无需部署WAR包,可以直接启动应用。
💙自动配置:自动配置Spring和第三方库(如数据库连接池、JPA等),使得开发者专注于业务逻辑。
💙生产级功能:Spring Boot集成了诸如Actuator(监控)、Metrics(性能指标)等功能,方便开发者进行应用运维。

🍬🍬🍬(4)Spring Cloud
Spring Cloud是构建分布式系统的开发工具集,它提供了许多用于构建微服务架构的功能。Spring Cloud构建在Spring Boot之上,结合了很多用于分布式系统开发的常见模式和解决方案。

主要模块:
💙Spring Cloud Netflix:提供了服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)等功能。
💙Spring Cloud Config:集中配置管理。
💙Spring Cloud Gateway:API网关,用于路由请求到微服务。
💙Spring Cloud Stream:分布式消息传递。
💙Spring Cloud Security:安全认证和授权。
💙Spring Cloud Sleuth:分布式追踪。

特点:
💙服务注册与发现:通过Eureka实现服务的自动注册和发现,支持负载均衡。
💙断路器模式:通过Hystrix提供的断路器模式,保证服务的高可用性。
💙API网关:Spring Cloud Gateway作为API网关,提供路由、负载均衡、权限控制等功能。
配置管理:通过Spring Cloud Config实现集中化配置管理。
💙分布式追踪:支持分布式追踪,帮助开发者了解系统内部的调用链路。

🍬🍬🍬(5)联系
💙Spring和Spring MVC关系
Spring MVC是Spring框架的一个模块,负责Web层的开发。它是Spring框架的一部分,利用Spring的核心功能(如IoC、AOP等),为Web应用提供全面的支持。
💙Spring Boot与Spring的关系
Spring Boot基于Spring框架,但它的目标是简化Spring应用的创建和部署。它通过自动化配置和嵌入式服务器,让开发者能够更加高效地开发和部署应用。

💙Spring Cloud与Spring Boot的关系
Spring Cloud构建在Spring Boot之上,利用Spring Boot的特性简化了分布式系统的开发。Spring Cloud为微服务架构提供了常用的基础设施组件,而Spring Boot则负责提供应用的快速开发和自动配置。

可以理解为SpringMVC是Spring框架的子模块,SpringBoot是Spring的扩展版本,SpringCloud又是SpringBoot的扩展,用于微服务架构

🍕🍕🍕问题2:什么是面向切面编程(AOP)

面向切面编程(AOP)通过将横切关注点(cross-cutting concerns)分离出来,提供了一种增强代码模块化和可维护性的方法。

简单来说,AOP就是将公共的模块封装成公共的方法,然后在需要的时候(这个就是切入点),直接就可以调用,而不用在各个对象里面具体的实现。

AOP是一种新的编程方式,它和OOP不同,OOP把系统看作多个对象的交互,AOP把系统分解为不同的关注点,或者称之为切面(Aspect)。这个可以理解为把系统理解为一个流程,一个对象负责流程上的一个节点。

当然,要彻底理解AOP需要大量的实践才能理解

🍕🍕🍕问题3:什么是微服务?

💙微服务(Microservices)是一种软件架构设计模式,它将应用程序分解为小型、自治的服务单元,这些服务单元可以独立部署、扩展和维护,其中每一个服务单元也都是一个微服务。与分布式操作系统类似

基于微服务形成的软件架构风格称为微服务架构(Microservices Architecture),它涵盖了使用微服务构建应用程序的全套原则、模式和最佳实践,关注如何将应用程序分解为多个微服务,以及这些服务如何交互、如何维护服务之间的独立性、如何实现服务的持续交付和部署等。在日常使用中,微服务又常被称为微服务架构,两者不区分使用。

说明白概念之后我们进入本文的正题————用IDEA搭建第一个Springboot入门项目

❤️第一步:新建项目
依次点击File——New——Project
在这里插入图片描述
❤️第二步:在弹出的框中勾选配置**
注意:
(1)Name可以自己指定,指定完成后Artifat也会跟着变化
(2)Package name等于Group和Artifact连接起来的名称
(3)Group 和Artifact都可以自己指定
(4)Type要选择MAVEN不要选GRADLE
(5)JDK要选择电脑上已经安装的JDK版本,Springboot2搭载的是JDK8,目前企业级开发支持的是JDK21,我这里使用的是JDK17
(6)打包方式选择JAR方式打包
(7)左侧栏选择Spring Initializr
(8)全部勾选完点击next
在这里插入图片描述

❤️第三步:勾选依赖项
注意:
(1)Web下拉框选择Spring web,选择完成后右边框中就会出现对应的名称
(2)Springboot选择稳定的版本,我这里是3.5.3,不要选择快照版(版本号跟SNAPSHOT的),快照版不稳定
在这里插入图片描述

❤️第四步:点击Create创建成功
注意联网状态下才能创建成功

❤️第五步:创建控制器类包和控制器类(在main文件夹下)
在这里插入图片描述

❤️第六步:在controller包下的BookController类中写代码
在这里插入图片描述

package com.example.demo.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/books")
public class BookController {@GetMappingpublic String getById(){System.out.println("springboot is running...");return "springboot is running";}
}

这段代码的运行效果是在浏览器页面上输出springboot is running

❤️第七步:找见下图中的DemoApplication右键选择run
注意:
(1)Application是系统自动生成的我们不需要创建
(2)Springboot项目的启动依赖下图中的Application和ApplicationTests
在这里插入图片描述
在这里插入图片描述

❤️第八步:启动Springboot项目,如下图所示
启动后可以看到Tomcat端口号和8080和访问路径“\”在这里插入图片描述

❤️第九步:通过我们代码中的路径查看程序运行效果
@RequestMapping(“/books”)这行代码给出了一级路径books,我们在浏览器中输入http://localhost:8080/books就可以出现下图效果

在这里插入图片描述

❤️第十步:返回浏览器查看控制台信息发现控制台输出了springboot is running的信息
在这里插入图片描述

至此我们第一个Springboot项目完成

http://www.dtcms.com/a/266192.html

相关文章:

  • 【基础算法】贪心 (二) :推公式
  • 封装一个png的编码解码操作
  • 译码器Multisim电路仿真汇总——硬件工程师笔记
  • 嵌入式系统中实现串口重定向
  • 【模糊集合】示例
  • 【MySQL\Oracle\PostgreSQL】迁移到openGauss数据出现的问题解决方案
  • Qt Creator自定义控件开发流程
  • redis缓存三大问题分析与解决方案
  • 车载以太网都有什么协议?
  • 创建 TransactionStatus
  • 【STM32实践篇】:I2C驱动编写
  • NumPy 安装使用教程
  • Debian-10-standard用`networking`服务的`/etc/network/interfaces`配置文件设置多网卡多IPv6
  • 【2.4 漫画SpringBoot实战】
  • CMake之CMakeLists.txt语法规则
  • 网安系列【1】:黑客思维、技术与案例解析
  • DDD实战:CQRS模式在电商报表系统中的高性能实践
  • RNN案例人名分类器(完整步骤)
  • MySQL 8.0 OCP 1Z0-908 题目解析(17)
  • POST请求url放参数场景-笔记
  • Spring SseEmitter 系统详细讲解
  • WPF学习笔记(16)树控件TreeView与数据模板
  • WPF学习笔记(22)项面板模板ltemsPanelTemplate与三种模板总结
  • spring-ai-alibaba 1.0.0.2 学习(八)——接入阿里云信息查询服务
  • 深度学习-逻辑回归
  • RJ45 连接器(水晶头)的引脚定义
  • 从0到1解锁Element-Plus组件二次封装El-Dialog动态调用
  • Gemini CLI初体验
  • 二叉树题解——二叉树的层序遍历【LeetCode】队列实现
  • Java中Stream流的使用