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

Java课题笔记~ SpringBoot概述

问题导入

学习了SpringBoot入门案例之后,感觉对比SpringMVC哪一个更加方便简洁?

  • SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

  • Spring程序缺点

    • 配置繁琐

    • 依赖设置繁琐

  • SpringBoot程序优点

    • 自动配置

    • 起步依赖(简化依赖配置)

    • 辅助功能(内置服务器,……)

2.1 起步依赖

  • starter

    • SpringBoot中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的

<?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.5.0</version></parent><groupId>com.itheima</groupId><artifactId>springboot-01-quickstart</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.0</version><packaging>pom</packaging><properties><servlet-api.version>4.0.1</servlet-api.version>        ...</properties>
</project>

parent

  • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的

  • spring-boot-starter-parent(2.5.0)与 spring-boot-starter-parent(2.4.6)共计57处坐标版本不同

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.0</version></parent><artifactId>spring-boot-starter-parent</artifactId><packaging>pom</packaging>    ...
</project>

实际开发

  • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供

  • 如发生坐标错误,再指定version(要小心版本冲突)

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version>
</dependency>
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet-api.version}</version>
</dependency>
<?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"><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version></parent><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>

2.2 辅助功能

  • SpringBoot程序启动

@SpringBootApplication
public class Springboot01QuickstartApplication {public static void main(String[] args) {SpringApplication.run(Springboot01QuickstartApplication.class, args);}
}
  • SpringBoot在创建项目时,采用jar的打包方式

  • SpringBoot的引导类是项目的入口,运行main方法就可以启动项目

  • 使用maven依赖管理变更起步依赖项

  • Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><!--web起步依赖环境中,排除Tomcat起步依赖--><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!--添加Jetty起步依赖,版本由SpringBoot的starter控制--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jetty</artifactId></dependency>
</dependencies>

http://www.lryc.cn/news/129933.html

相关文章:

  • python优雅地爬虫!
  • UVM RAL后门访问配置
  • 数学建模之“灰色预测”模型
  • 深入探讨 Oxigen:Rust 实现的并行遗传算法框
  • Flink-----Standalone会话模式作业提交流程
  • 算法与数据结构(七)--堆
  • 软件工程概述-架构师(三)
  • 华为手机Outlook手机APP无法登录邮箱,提示[2002]错误代码
  • “深入探究JVM内部结构与工作原理:解析Java虚拟机“
  • windows下redis服务启动及.bat文件中中redis服务的启动
  • 【学习笔记之vue】 Cannot find module ‘node-sass‘
  • POSTGRESQL 关于安装中自动启动的问题 详解
  • Java寻找数组的中心下标
  • ORACLE中判断表是否存在再删除表避免报错与MySql和SqlServer的不同
  • 解决 Maven 创建 Spring Boot 项目时出现 “Cannot access alimaven“ 错误的方法
  • 设计模式——适配器模式
  • 如何区分闰年与平年
  • 中间件(下)
  • LVS-DR的RS进行ARP抑制的原因和LVS持久连接配置
  • 【HarmonyOS】codelab在hvigor版本2.4.2上无法运行问题
  • MySQL- sql语句基础
  • 【目标检测中对IoU的改进】GIoU,DIoU,CIoU的详细介绍
  • 【环境配置】Windows10终端和VSCode下能够直接打开Anaconda-Prompt
  • 稚晖君人形机器人问世:大模型加持,会自己换胳膊,要上生产线造车
  • 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践
  • 亚马逊产品排名关键因素解析,通过测评干预需要具备哪些条件
  • leetcode原题:绘制直线(位运算)
  • jenkins 安装和通过gitee 拉取PHP项目
  • 解析TCP/IP协议的分层模型
  • ARM M33架构入门