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类中写代码

java 复制代码
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 {
    @GetMapping
    public 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项目完成

相关推荐
人活一口气8 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP10 小时前
Vibe Coding -- 完整项目案例实操
java
荣码10 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing10 小时前
Google第三方授权登录
java·后端·程序员
明月光81810 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑19 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯20 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
fanly1121 小时前
Surging AI Agent 完整产品介绍
微服务·microservice
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
Java陈序员1 天前
企业级!一个基于 Java 开发的开源 AI 应用开发平台!
spring boot·agent·mcp