SpringBoot入门程序以及启动方式 - 项目中切换服务器依赖

news2024/11/26 0:37:42

文章目录

  • SpringBoot
    • SpringBoot入门程序
    • SpringBoot快速启动
    • SpringBoot基本介绍
    • SpringBoot切换服务器

SpringBoot

SpringBoot入门程序

SpringBoot入门程序步骤如下:

创建新模块,选择Spring初始化,并配置模块相关基础信息

在这里插入图片描述

选择当前模块需要使用的技术集

在这里插入图片描述

创建控制器类

@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping("/{id}")
    public String selectById(@PathVariable Integer id) {
        System.out.println("id ===> " + id);
        return "hello spring boot";
    }
}

运行自动生成的Application类

在这里插入图片描述

到这里我们SpringBoot的入门程序就做完了, 我们可以使用PostMan发送请求进行测试

在这里插入图片描述

我们可以发现SpringBoot程序相比Spring程序开发要简化的非常多

类/配置文件SpringSpringBoot
pom文件中的坐标手工添加勾选添加
web3.0配置类手工制作
Spring/SpringMVC配置类手工制作
控制器手工制作手工制作

注意: 基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构

SpringBoot快速启动

SpringBoot项目是可以脱离IDEA, 且不依赖Tomcat和Maven就可以单独运行的

例如在开发中, 前端人员想进行一些调试, 除了让前端人员连接我们电脑上的服务器外, 我们还可以将SpringBoot项目打包发给前端人员, 只需要确保连接的是同一数据库即可

快速启动步骤如下:

对SpringBoot项目打包(执行Maven构建指令package)

在这里插入图片描述

在控制台执行启动命名: 启动SpringBoot打包的jar包

java –jar 文件名称.jar

在这里插入图片描述

我们将项目打包成jar包, 可以通过运行jar包的方式运行项目的主要功臣是pom.xml文件中的插件

这个插件不仅将项目打包成jar包, 还将项目需要用到的其他jar包也打入到最终生成的那个jar包中; 并设置了入口程序;

jar支持命令行启动需要依赖maven插件支持,请确认打包时是否具有SpringBoot对应的maven插件

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
  </plugins>
</build>

SpringBoot基本介绍

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

Spring程序缺点

  • 配置繁琐
  • 依赖设置繁琐

SpringBoot程序优点

  • 自动配置
  • 起步依赖(简化依赖配置)
  • 辅助功能(内置服务器,……)

SpringBoot程序启动方式:

SpringBoot在创建项目时,采用jar的打包方式

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

@SpringBootApplication
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

SpringBoot起步依赖

starter

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

parent

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

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

实际开发

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

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

SpringBoot切换服务器

我们SpringBoot项目中目前使用的是Tomcat服务器, 例如我们想要使用Jetty服务器需要如何配置呢

首先需要排除掉Tomcat服务器的依赖

<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>

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

添加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>

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

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

Tomcat内置了一些东西, 使用或者不使用都存在

Jetty中什么都没有内置, 需要使用什么自行添加

若果使用的东西多那么选择Tomcat, 如果使用的东西少, 就选中Jetty

我们可以发现使用SpringBoot开发切换依赖是非常方便的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你真的会写用例吗?自动化测试用例如何编写?看着资深测试的总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Python自动化测试&…

Rocky9配置固定IP

vim /etc/NetworkManager/system-connections/enp4s0.nmconnection[ipv4] methodmanual # 子网掩码为 255.255.254.0 address1192.168.1.207/23,192.168.1.1 # 如果子网掩码为 255.255.255.0 则使用下面配置 # address1192.168.1.207/24,192.168.1.1 dns192.168.1.200;45.116.2…

Springcloud--异步通信RabbitMq

RabbitMQ 1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&am…

全网对BGP团体属性讲的最透彻的一篇,附华为、思科、瞻博网络三厂商配置!

你好&#xff0c;这里是网络技术联盟站。 Border Gateway Protocol&#xff08;边界网关协议&#xff0c;简称BGP&#xff09;是一种广泛用于互联网的路由选择协议。BGP的设计目标是实现自治系统&#xff08;AS&#xff09;之间的路由选择和交换&#xff0c;它决定了网络中数据…

性能测试loadrunner

目录 基本概念 性能工具jemeter代码调试 loadrunner实战代码笔记 使用Loadrunner的步骤 性能指标分析结果 基本概念 一、什么是性能&#xff1a; 性能&#xff1a;是用来描述产品除功能外的所具有的速度&#xff0c;效率和能力的综合能力评价。 二、什么是性能测试&…

【马蹄集】第十四周作业

第十四周作业 目录 MT2134 泡泡MT2135 调整队伍MT2141 快排变形MT2142 逆序MT2143 线段树 MT2134 泡泡 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 小码哥小时候喜欢吹泡泡&#xff0c;有一次他吹出了 n n n 个一样小的泡泡&…

工业无监督缺陷检测,提升缺陷检测能力,解决缺陷样品少、不平衡等问题

1. 简介 在工业生产中,质量保证是一个很重要的话题, 因此在生产中细小的缺陷需要被可靠的检出。工业异常检出旨在从正常的样本中检测异常的、有缺陷的情况。工业异常检测主要面临的挑战: 难以获取大量异常样本正常样本和异常样本差异较小异常的类型不能预先得知这些挑战使得…

Linux Tomcat服务 【Tomcat-JVM-系统内核】 优化

---------------------Tomcat 优化------------------------- Tomcat默认安装下的缺省配置并不适合生产环境&#xff0c;它可能会频繁出现假死现象需要重启&#xff0c;只有通过不断压测优化才能让它最高效率稳定的运行。优化主要包括三方面&#xff0c;分别为操作系统优化&…

智能电表价格比机械电表价格高那么多?为什么?

智能电表是一种电子式电表&#xff0c;采用微处理器进行数据处理和控制&#xff0c;具有远程监控、数据传输、电量显示等多种功能。而机械电表则是传统的机械式电表&#xff0c;采用旋转式或弹簧式机械结构进行计量。 智能电表的价格比机械电表高&#xff0c;这主要是由于以下几…

【每日挠头算法题(1)】——旋转字符串|亲密字符串

文章目录 一、旋转字符串思路1思路2 二、亲密字符串思路 总结 一、旋转字符串 点我直达终点~ 思路1 前提&#xff1a;如果s串和goal串长度不等&#xff0c;则goal串不可能是s串旋转得来&#xff0c;直接返回false&#xff1b; 通过观察&#xff0c;可以发现每旋转一次&#…

HCIA-流量管理方案

目录 ACL访问控制列表 ACL分类&#xff1a; ACL的工作原理&#xff1a; ACL的组成&#xff1a; 规则编号&#xff1a; 通配符 ACL的匹配机制 ACL的匹配位置 基本ACL的部署与配置 基本ACL的配置命令 基本ACL案列 高级ACL 高级ACL的创建命令 高级ACL案例 ACL访问控制列表…

安卓大作业:使用Android Studio开发天气预报APP(使用sqlite数据库)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

串口屏自制电脑机箱监控副屏-HF035

前言 如果程序员配电脑要干点什么酷酷的事情的话&#xff0c;那就自己DIY一个机箱监控副屏吧。监控副屏在某宝最便宜也要上百块&#xff0c;本文介绍了怎么使用成本几十块的串口屏模块从0开始完成一个酷炫的机箱监控副屏。主要是软件编程较多&#xff0c;仅涉及到一点硬件知识&…

在迷茫之中找到职业发展的方向!软件测试人员的迷茫

目录 出现迷茫或焦虑的原因是什么&#xff1f; 1、敏捷和DevOps开发模式的推行 2、测试的天花板比较低&#xff0c;自己上升的空间比较小 3、35岁是一个门槛&#xff0c;许多人也担心到了这个年龄 4、测试工作被机器人替代 如何走出迷茫&#xff1f; 1、坚守现在的测试岗位&am…

解决鞋业管理难题:低代码平台的应用与实践

如今&#xff0c;低代码平台正在逐渐发展成为一个重要的系统开发方式。与传统的编码方式相比&#xff0c;低代码平台更加注重“可视化”和“快速开发”。在这种情况下&#xff0c;低代码平台的应用范围也在不断拓展。在鞋业管理中&#xff0c;低代码平台也逐渐成为一种重要的技…

从小白到大神之路之学习运维第34天---第三阶段---mysql数据库之优化数据库、数据库备份、win10客户端连接

第三阶段基础 时 间&#xff1a;2023年6月6日 参加人&#xff1a;全班人员 内 容&#xff1a; Mysql数据库 目录 前提环境配置 优化 MySQL 数据库备份 Win10客户端连接 前提环境配置 关闭防火墙 &#xff08;systemtl stop firewalld、iptables -F、setenforce 0&#xff09;…

Linux线程互斥与同步

目录 &#x1f351;一、线程互斥 1.1、进程线程间互斥相关背景概念 1.2、互斥量mutex 1.3、互斥量的接口 1.4、互斥量使用 1.5、互斥量实现原理探究 1.6、RAII风格的设计加锁 1.7、可重入VS线程安全 &#x1f351;二、常见锁概念 2.1、死锁 &#x1f351;三、Linux线…

HTML 标签的学习

1.HTML 的结构 前端三剑客: HTML CSS JS,本章我们学习的是HTML HTML > 超文本标记语言 HTML代码是由"标签"构成的. 形如 <body>hello</body>标签名 (body) 放到 < > 中大部分标签成对出现. 为开始标签, 为结束标签.少数标签只有开始标签…

Windows系统图标混乱(丢失)

1. 进入文件夹选项设置显示隐藏系统文件 2. &#xff08; Win7&#xff09;进入 C:\\Users\\%username%\\AppData\\Local 删除&#xff1a;IconCache.db (Win10/Win8.1) 进入 C:\\Users\\%username%\\AppData\\Local\\Microsoft\\Windows\\Explorer\\ 删除一系列iconcache…

网络协议——STP协议是什么?是如何实现的?

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 目录 一、STP协议是什么 二、为什么需要STP协议 三、STP的实现过程 ​编辑 1、选举跟桥 2、给非跟桥交换机选举跟端口 3、给每个网段选…