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项目完成

相关推荐
缘来是庄15 分钟前
设计模式之访问者模式
java·设计模式·访问者模式
Bug退退退12340 分钟前
RabbitMQ 高级特性之死信队列
java·分布式·spring·rabbitmq
梵高的代码色盘1 小时前
后端树形结构
java
代码的奴隶(艾伦·耶格尔)1 小时前
后端快捷代码
java·开发语言
虾条_花吹雪1 小时前
Chat Model API
java
双力臂4041 小时前
MyBatis动态SQL进阶:复杂查询与性能优化实战
java·sql·性能优化·mybatis
六毛的毛2 小时前
Springboot开发常见注解一览
java·spring boot·后端
程序漫游人2 小时前
centos8.5安装jdk21详细安装教程
java·linux
超级码.里奥.农3 小时前
零基础 “入坑” Java--- 七、数组(二)
java·开发语言
hqxstudying3 小时前
Java创建型模式---单例模式
java·数据结构·设计模式·代码规范