Spring Boot 实例解析:从概念到代码

news/2025/2/3 12:57:44 标签: spring boot, 后端, java
  1. SpringBoot 简介:
    1. 简化 Spring 应用开发的一个框架
    2. 整合 Spring 技术栈的一个大整合
    3. J2EE 开发的一站式解决方案
    4. 优点:快速创建独立运行的 Spring 项目以及与主流框架集成
    5. 使用嵌入式的 Servlet 容器,应用无需打成 war 包,内嵌 Tomcat
    6. Srarters 自动依赖和版本控制
    7. 大量的自动装配,简化开发,也可以修改默认值
    8. 无需配置 XML  无代码生成,开箱即用
    9. 准生产环境的运行时应用监控
    10. 与云计算的天然集成
  2. 微服务:
    1. 简介:
      1. Spring Cloud 服务的治理方案
      2. Java 开发框架演变过程:Java开发框架演变过程 - 盗梦笔记 - 博客园
      3. 架构风格:服务微化
      4. 指开发单个小型的但有业务功能的服务,每个服务都有自己处理和轻量通讯机制,可以部署在单个或多个服务器上
      5. 微服务也指一种松耦合,有一定的有界上下文的面向服务框架
      6. 一个应用应该是一组小型服务,可以通过 HTTP 的方式进行互通
      7. 单体应用:ALL  IN  ONE
      8. 每一个功能元素最终都是一个可独立替换和独立升级的软件单元
      9. 微服务文档
    2. 微服务优点:
      1. 每一个微服务都很小,这样能聚焦一个指定的业务功能或业务需求
      2. 微服务能够被 2-5 人小团队开发
      3. 微服务是松耦合的,是有功能意义的服务,无论是开发阶段或是部署阶段都是独立的
      4. 微服务能够使用不同的语言开发
      5. 微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,一个团队的新成员能够更快投入生产
      6. 微服务易于被一个开发人员理解、修改和维护
      7. 微服务能偶及时被要求扩展
      8. 微服务能够部署中低端配置的服务
      9. 易于和第三方集成
      10. 每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库
    3. 微服务缺点:
      1. 微服务架构可能带来过多的操作
      2. 可能付出双倍的努力
      3. 分布式系统可能复杂难以管理,因为分布式跟踪问题na难
      4. 当服务量增加,管理复杂性增加
  3. MAVEN 设置:
    1. 给 maven 的 setting.xml 配置文件的 profiles 标签添加:
      <profile>
          <id>jdk‐1.8</id>
          <activation>
               <activeByDefault>true</activeByDefault>
          <jdk>1.8</jdk>
          </activation>
          <properties>
               <maven.compiler.source>1.8</maven.compiler.source>
               <maven.compiler.target>1.8</maven.compiler.target>
               <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
          </properties>
      </profile>
    2. IDEA 设置:
    3. 注意:第一个依赖后面的 -web 不要忘记
      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <parent>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-parent</artifactId>
             <version>2.7.5</version>
             <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <groupId>com.qcby</groupId>
          <artifactId>springboot</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      
          <!-- JDK 版本-->
          <properties>
             <java.version>1.8</java.version>
          </properties>
          <dependencies>
             <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
             </dependency>
      
             <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
             </dependency>
          </dependencies>
      
      
      </project>
  4. SpringBoot Hello World(将 maven 项目改变成 SpringBoot 项目):
    1. 创建一个 maven 工程(打包方式为 jar 包)
    2. 导入 SpringBoot 相关的依赖
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring‐boot‐starter‐parent</artifactId>
          <version>1.5.9.RELEASE</version>
      </parent>
      <dependencies>
          <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring‐boot‐starter‐web</artifactId>
          </dependency>
      </dependencies>
    3. 编写一个主程序:启动 Spring Boot 应用
      java">/**
      *
      @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
      */
      @SpringBootApplication
      public class HelloWorldMainApplication {
          public static void main(String[] args) {
          // Spring应用启动起来
          SpringApplication.run(HelloWorldMainApplication.class,args);
          }
      }
    4. 简化部署:可以将应用打成一个可执行的 jar 包
      <!--    这个插件,可以将应用打包成一个可执行的jar包-->
      <build>
          <plugins>
             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
          </plugins>
      </build>
      
      
    5. 编写相关的 Controller 和 Service:
      @RestController
      public class HelloController {
      
          @RequestMapping("/hello")
          public String sayHello(){
              return "Hello World";
          }
      }

http://www.niftyadmin.cn/n/5840825.html

相关文章

XML,WEB项目部署,HTTP

XML&#xff08;配置文件&#xff09; XML和HTML一样都是标记语言&#xff0c;也就是说它们的基本语法都是标签。 常见配置文件类型 1 根标签只能有一个 2 第一行永远是<?xml version"1.0" encoding"UTF-8"?>不允许放任何东西 3 xml是有约束的…

python算法和数据结构刷题[6]:二叉树、堆、BFS\DFS

遍历二叉树 前序遍历NLR&#xff1a;先访问根结点&#xff0c;再前序遍历左子树&#xff0c;最后前序遍历右子树。中序遍历LNR&#xff1a;先中序遍历左子树&#xff0c;再访问根结点&#xff0c;最后中序遍历右子树。后序遍历 LRN&#xff1a;先后序遍历左子树&#xff0c;再…

Unity游戏(Assault空对地打击)开发(3) 摄像机的控制

详细步骤 打开My Assets或者Package Manager。 选择Unity Registry。 搜索Cinemachine&#xff0c;找到 Cinemachine包&#xff0c;点击 Install按钮进行安装。 关闭窗口&#xff0c;新建一个FreeLook Camera&#xff0c;如下。 接着新建一个对象Pos&#xff0c;拖到Player下面…

ubuntu直接运行arm环境qemu-arm-static

qemu-arm-static 嵌入式开发有时会在ARM设备上使用ubuntu文件系统。开发者常常会面临这样一个问题&#xff0c;想预先交叉编译并安装一些应用程序&#xff0c;但是交叉编译的环境配置以及依赖包的安装十分繁琐&#xff0c;并且容易出错。想直接在目标板上进行编译和安装&#x…

css三角图标

案例三角&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

每日 Java 面试题分享【第 19 天】

欢迎来到每日 Java 面试题分享栏目&#xff01; 订阅专栏&#xff0c;不错过每一天的练习 今日分享 3 道面试题目&#xff01; 评论区复述一遍印象更深刻噢~ 目录 问题一&#xff1a;Java Object 类中有什么方法&#xff0c;有什么作用&#xff1f;问题二&#xff1a;Java …

Rust 控制流语法详解

Rust 控制流语法详解 控制流是编程语言中用于控制代码执行顺序的重要机制。Rust 提供了多种控制流语法&#xff0c;包括条件判断&#xff08;if、else if&#xff09;、循环&#xff08;loop、while、for&#xff09;等。本文将详细介绍这些语法&#xff0c;并通过示例展示它们…

ARM嵌入式学习--第十二天(WDOG,RTC)

--WDOG -介绍 WatchDog是为了能够防止程序跑飞而使用的一种硬件模块&#xff0c;如果你的程序没有跑飞&#xff0c;那么你的程序会定时的去喂看门狗&#xff1b;如果你的程序跑飞了&#xff0c;那么就不会再去喂狗了&#xff0c;如果超过了喂狗时间&#xff0c;那么狗就会自己…