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

news/2025/2/6 18:48:41/
  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.ppmy.cn/news/1569871.html

相关文章

应对现代电子商务的网络威胁—全面安全战略

在当今高度数字化的世界&#xff0c;电子商务企业面临的网络威胁比以往任何时候都更复杂和全球化。不再仅仅是简单的恶意软件或DDoS攻击&#xff0c;如今的威胁来源于复杂的黑客组织、精心设计的定向攻击&#xff0c;甚至是国家支持的网络犯罪活动。企业级电商平台&#xff0c;…

Excel 技巧22 - Ctrl+D 向下复制(★★),复制同间距图形

本文讲Excel中CtrlD 向下复制的用法。 这个是我特别喜欢和常用的功能&#xff0c;操作简单&#xff0c;功能强大。 1&#xff0c;CtrlD向下复制 1-1&#xff0c;单个单元格复制 最为常用的就是一个单元格的&#xff0c;就像下面这样的&#xff0c;也不用选中&#xff0c; 就…

MongoDB学习笔记-解析jsonCommand内容

如果需要屏蔽其他项目对MongoDB的直接访问操作&#xff0c;统一由一个入口访问操作MongoDB&#xff0c;可以考虑直接传入jsonCommand语句解析执行。 相关依赖包 <!-- SpringBootDataMongodb依赖包 --> <dependency><groupId>org.springframework.boot</…

【Golang学习之旅】Go 语言数据类型详解(string、slice、map等)

文章目录 前言1. Go语言数据类型概览2. Go语言基本数据类型2.1 整型&#xff08;int&#xff0c;uint&#xff0c;float&#xff09;2.2 布尔类型&#xff08;bool&#xff09;2.3 字符串&#xff08;string&#xff09; 3. Go 语言复合数据类型3.1 数组&#xff08;Array&…

CNN的各种知识点(一):卷积神经网络CNN通道数的理解!

卷积神经网络CNN通道数的理解&#xff01; 通道数的核心概念解析1. 通道数的本质 2. 单张灰度图的处理示例&#xff1a; 3. 批量输入的处理通道与批次的关系&#xff1a; 4. RGB三通道输入的处理计算过程&#xff1a;示例&#xff1a; 5. 通道数的实际意义6. 可视化理解(1) 单通…

HTML基本语法

什么是HTML? HTML是超文本标记语言&#xff08;HyperText Markup Language&#xff09;的缩写&#xff0c;是一种用于创建网页的标准标记语言。HTML允许网页设计师通过使用标签来描述网页的结构和内容。 W3C标准 W3C&#xff08;World Wide Web Consortium&#xff09;是一…

11.kafka开启jmx

方式一: 1.进入/opt/kafka_2.13-3.3.2/bin目录 命令: cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 ~]# cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# pwd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# 2.备份kafka-run-class.sh 命令: cp kafka-run-class.sh …

CVPR | CNN融合注意力机制,芜湖起飞!

**标题&#xff1a;**On the Integration of Self-Attention and Convolution **论文链接&#xff1a;**https://arxiv.org/pdf/2111.14556 **代码链接&#xff1a;**https://github.com/LeapLabTHU/ACmix 创新点 1. 揭示卷积和自注意力的内在联系 文章通过重新分解卷积和自…