springboot 快速上手

Spring Boot是一个用于快速构建基于Spring的应用程序的开发框架。它简化了Spring应用程序的初始化和配置过程,提供了一种约定优于配置的方式来构建应用程序。

内嵌tomat、jetty可以生成可以独立运行的jar包,不需要打成war包。

简化配置,大部分情况下,开发者只需要提供必要的配置信息,即可快速启动应用程序。

自动装配,可以根据类路径上的依赖和配置信息,自动推断应用程序的配置,减少了显示配置的工作。

快速集成,可以于大多数框架快速集成,只需要添加相应的 'starter’依赖。

添加全局依赖

<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.14</version><type>pom</type><scope>import</scope></dependency></dependencies>  
</dependencyManagement>      

新建工程,在maven的dependencyManagement配置spring-boot-dependencies全局依赖设置,这样在使用springboot相关依赖的时候,不用写具体版本,会从上面引入的pom中读取对应jar包版本。

这里最新的springboot版本目前已经到3了,这里还是使用2.5版本,支持jdk8。

添加具体依赖如下:

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

这里引入spring-boot-starter-web主要是为了演示启动一个web项目测试。

编写controller服务

@Controller
@Slf4j
public class HelloController {@RequestMapping("/hello")@ResponseBodypublic String hello(String data) {log.info(data);return "ok";}
}

这里使用spring mvc 进行提供了一个controller服务接口。像其它的service,component可以像以前一样进行bean的配置,和原理spring使用方式一样。

编写启动类

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

这里引入了一个新注解@SpringBootApplication,然后在main函数里使用 SpringApplication.run()方法来启动服务。这样就完成了一个springboot web工程的启动,默认情况下会扫描当前@SpringBootApplication注解所在类的包及子包下注解标识的bean。浏览器访问http://localhost:8080/hello就可以访问上面定义的接口。相对于原来的web开发方式是不是很简单,默认情况下没有配置任何东西。springboot自动使用默认值来进行配置服务。

当然可以在resource下创建一个application.properties文件来特定一些配置。如要修改web服务端口,可以通过

server.port=8090这样指定。很多配置项在IDE开发工具中都会有提示。
至于springboot原理后面文章慢慢说。

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

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

相关文章

【PostGIS】在Java中操作postgis——使用springboot+Maven+mybatis框架

前言&#xff1a; PostgreSQL15对应PostGIS安装教程及空间数据可视化 空间数据库-常用空间函数 完成PostGIS的安装与配置后&#xff0c;让我们来写一个Java操作postgis数据库的demo吧~ 使用工具&#xff1a; NavicatIDEA 一、PostGIS数据库准备 在Navicat中新建一个postgr…

docker 镜像仓库harbor安装

1、windows安装&#xff1a; docker pull bitnami/harbor-registry 2、linux安装&#xff1a; K8s集群使用容器镜像仓库Harbor_k8s使用harbor-CSDN博客

Ubuntu系统如何安装SVN服务端并通过客户端无公网ip实现远程访问?

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

【Dart】P1 入口方法、注释方法、变量与常量、命名规则

Dart 入口方法、注释方法、变量与常量、命名规则 入口方法注释方法变量与常量变量变量名称命名规则常量 入口方法 入口方法一&#xff1a;main() 方法&#xff1b; 使用条件&#xff1a;有返回值&#xff1b; 代码示例&#xff1a; main() {print(nihao dart); }入口方法二&a…

LeetCode 22 括号生成

题目描述 括号生成 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()","()((…

测绘资质人员培训与岗位管理制度

人员培训与岗位管理制度 建立健全人员培训与岗位管理制度&#xff0c;明确岗位职责、岗前培训考核、继续教育等要求

设 备 管 理

(1) 简单叙述设备管理的任务和功能。 解&#xff1a; 设备管理的主要任务包括&#xff1a; 响应用户进程提出的I/O请求&#xff0c;选择和分配I/O设备进行数据传输操作。控制I/O设备和CPU(或内存)之间进行数据交换&#xff0c;提高设备和设备之间、CPU和设备之间以及进程和进程…

实验三:路由器的管理与配置

实验目的&#xff1a; 了解路由器的作用熟悉路由器的基本配置方法熟悉Packet Tracer 路由模拟软件的使用 实验环境&#xff1a; Windows 10 下的 Cisco Packet Tracer 实验内容&#xff1a; 熟悉Packet Tracer组件搭建实验拓扑 实验步骤&#xff1a; 1.连接设备 2.配置IP地…

开发常需要的好用API汇总

手机号码归属地&#xff1a;可根据手机号码查询其省市区、运营商区号行政区划代码等信息。 上亿条数据囊括最新的170、166、147等号段&#xff0c;更新及时、准确度高。二维码识别OCR&#xff1a;对图片中的二维码、条形码进行检测和识别&#xff0c;返回存储的文字内容。短信验…

【Linux】解释为什么“I/O 等待”的指标可能是误导的。

解释为什么“I/O 等待”的指标可能是误导的。 I/O等待指标是用来衡量I/O子系统性能的重要指标之一&#xff0c;它表示等待I/O操作完成的时间。然而&#xff0c;I/O等待指标有时可能会误导&#xff0c;原因如下&#xff1a; I/O操作类型&#xff1a;I/O等待指标不能告诉我们实…

python定义代码块的符号,python中代码块所属关系

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python中代码块所属关系的语法&#xff0c;python定义代码块的符号&#xff0c;今天让我们一起来看看吧&#xff01; 本文章主要用于平时Python3学习和使用中积累的比较常用的代码块。代码都是经过验证可行的python简单…

深度学习计算数据集里所有图像像素点的均值方差

代码怕忘记&#xff0c;现在贴上来&#xff0c;以防丢失 from torch.utils.data import DataLoader from torchvision.datasets import ImageFolder import torch from torchvision import transformsdef get_mean_and_std(data_path, in_chans3):dataset ImageFolder(rootda…

RocketMQ常见问题分析

目录 1. RocketMQ如何保证消息不丢失 1.1 分析消息丢失场景 1.2 解决方案 1.2.1 保证消息生产不丢失 1.2.1.1 生产消息时不使用单向发送消息发送模式 1.2.1.2 生产者使用事务消息机制 1.2.2 保证消息存储不丢失 1.2.3 保证消息消费不丢失 1.2.4 RocketMQ特有的问题&…

4.8 【共享源】流的消费者

一,什么是流的消费者? 消费者从生产者那里获取内容,以进行下一步的处理。 消费者从生产者那里获取内容,并对其进行某种形式的处理(例如图像处理、合成)。它最终也可以显示来自生产者的内容。 通常,我们需要在消费者应用程序中执行接下来的步骤,以从生产者那里获取内…

Echarts legend属性使用

Echarts的legend属性是对图例组件的相关配置 而legend就是Echarts图表中对图形的解释部分&#xff1a; 其中legend自身常用的配置属性如下&#xff1a; orient 设置图例的朝向 属性值&#xff1a; vertical // 垂直显示 或者 horizontal // 水平显示 legend: {orient: ver…

Pandas有了平替Polars

Polars是一个Python数据处理库&#xff0c;旨在提供高性能、易用且功能丰富的数据操作和分析工具。它的设计灵感来自于Pandas&#xff0c;但在性能上更加出色。 Polars具有以下主要特点&#xff1a; 强大的数据操作功能&#xff1a;Polars提供了类似于Pandas的数据操作接口&am…

涵盖多种功能,龙讯旷腾Module第七期:超快动力学过程

Module是什么 在PWmat的基础功能上&#xff0c;我们针对用户的使用需求开发了一些顶层模块&#xff08;Module&#xff09;。这些Module中的一部分是与已有的优秀工具的接口&#xff0c;一部分是以PWmat的计算结果为基础得到实际需要的物理量&#xff0c;一部分则是为特定的计…

Zama TFHE-rs

1. 引言 前序博客见&#xff1a; 基于[Discretized] Torus的全同态加密指引&#xff08;1&#xff09;基于[Discretized] Torus的全同态加密指引&#xff08;2&#xff09;TFHE——基于[Discretized] Torus的全同态加密 代码解析 开源代码见&#xff1a; https://github.co…

ctf web赛道基础 万字笔记

一、SQL注入&#xff08;mysql&#xff09;&#xff1a; 基本语法 判断列数 order by 3 查询所有数据库&#xff1a; select group_concat(schema_name) from information_schema.schemata 查询当前数据库的所有表&#xff1a; select group_concat(table_name) from informa…

12.鸿蒙HarmonyOS App(JAVA) page的隐式跳转

跳转到指定Page的指定AbilitySlice MainAbilitySlice按钮触发事件&#xff1a; btn.setClickedListener(component -> { Intent _intent new Intent(); Operation operation new Intent.OperationBuilder() .withBundleName(…