SpringBoot入职学习

news2024/11/24 14:58:54

一、前言

公司入职,第一个事是把公司项目运行起来。然后在经过几天的颠沛流离,遇到一个事情。在创建yml文件的时候,需要设置自己的配置文件。当然还是先跑起来项目,就使用别人的yml文件。但是,到springboot配置那里卡住了。我没学过springboot。不会用。

问题就在这:

意识到,我应该系统化的学习一下springboot。

二、什么是spring boot?

Spring Boot 是由 Pivotal 团队提供的基于 Spring 的全新框架,旨在简化 Spring 应用的初始搭建和开发过程。它是一个快速开发的框架,能过快速整合第三方框架,它的基本原来是 Maven 依赖关系,Maven 的集成,完全采用注解化,简化 XML 配置,内嵌 HTTP 服务器(Tomcat,Jetty),默认嵌入 Tomcat,最终以 Java 应用程序进行执行。Spring Boot 是开发者和 Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的 Spring Boot 就是为了对 Java web 的开发进行“简化”。

三、开始第一个项目

官网步骤:

需要学会看英文的官方文档。这是官方给出的第一个spring Boot 应用的步骤:

POM,在前面Maven学习了,它其实就是一个坐标。 在IDEA里面,就是需要指定仓库地址,Maven的settings.xml文件。

 POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

Adding Classpath Code: 

 

 第三步:编写业务。

有两个java程序:一个是helloworld,一个是主程序。注意他们的位置区别。

主程序:@SpringBootApplication

业务程序helloworld:

@RestController   //相当于两个注释合在一起的作用。让return 返回字符串而不是页面。

@RequestMapping("/hello")    //这个是页面。默认是:localhost:8080/hello。

这个业务代码需要牢记,参考博客:

Spring Boot 2 学习笔记(1 / 2)_巨輪的博客-CSDN博客

第四步:运行代码。

第五步:Creating an Executable jar

创建jar包的好处就是:可以通过java -jar的方式运行发布在web服务器的业务。

 需要注意的是,使用前提:

后面还有一个配置,application.properties文件。这个文件,其实就是我们前言里面遇到的yml文件。其中application前缀不能改。它的作用是相当于我们在SSM学习里面的pom.xml或者是web.xml文件。简化了很多代码量!!!

思考实验:

需要比较SSM里面,Spring Boot简化了哪些代码量!

四、了解自动配置的原理

在开发第一个helloworld的项目之后,我们需要了解JavaBoot的自动配置原理。

 依赖管理特性:

父项目做依赖管理:标签是<parent> 。只要这个声明了版本号,后续的依赖<dependency>都不要在声明版本号,进行了自动版本仲裁。

开发导入starter场景启动器:

它在依赖<dependency>里面,用spring-boot-starter-*表示。*表示某种场景。它的用处是只要声明了这个场景,后续所有有关的依赖都不需要添加。具体它这个依赖包含了哪些依赖可以使用ctrl查看。就比如:上述hellworld项目,只使用了spring-boot-start-web这个场景启动器。但是包含了很多依赖,就不用像之前SSM的学习一个一个导入。

查看场景包含的依赖:

 

无需关注本版号,自动版本仲裁;

可以修改版本号:在<properties>标签里面。

<properties> <mysql.version>5.1.43</mysql.version> </properties>

扩展:<properties>标签的作用,它属于Maven的知识。方便maven依赖标签用${变量名}的形式动态获取版本号。

思考区别:

parent的作用和starter场景的区别:

然后我的公司使用的<parent>是以公司自己的名称命名的。也就是说,如果使用打包。只要运行我这个公司的这个父项目就能达到要求。()

自动配置特性:

​​​​​​​

自动配好Tomcat。

其实就是上面那个starter场景启动器,导入这个之后,能自动配好。

自动配好SpringMVC。

原理同上,它能引入注册MVC的组件。

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

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

相关文章

视频抠像软件有哪些?简单好用视频抠像软件分享

在视频后期制作中&#xff0c;抠像通常用于将视频中的某个元素从其背景中分离出来。这种处理技术可以用于各种用途&#xff0c;比如创建特效、添加背景&#xff0c;或者将视频元素组合到新场景中。在电影、电视剧和广告等专业的影视制作中&#xff0c;抠像是一个常见的技术步骤…

cesium学习记录04-坐标系

一、地理坐标系和投影坐标系的关系 地理坐标系 (Geographic Coordinate System, GCS) 定义&#xff1a;地理坐标系是一个基于三维地球表面的坐标系统。它使用经度和纬度来表示地点的位置。 特点&#xff1a; 使用经纬度来定义位置。 基于特定的地球参考椭球体。 适用于全球范…

2023河南萌新联赛第(五)场:郑州轻工业大学 --亚托莉 -我挚爱的时光-

题目描述 亚托莉&#xff0c;-我挚爱的时光- 亚托莉自身机器可能有出了一点小故障&#xff0c;希望你能帮助她解决这个问题&#xff5e; 亚托莉内部的操作系统的是 Linux 操作系统&#xff0c;不同于 Windows 操作系统。在大多数情况下&#xff0c; Linux 操作系统一般是通过…

死磕Android性能优化,卡顿原因与优化方案

随着移动互联网的快速发展&#xff0c;Android应用的性能优化变得尤为重要。卡顿是用户体验中最常见的问题之一&#xff0c;它会导致应用的响应变慢、界面不流畅&#xff0c;甚至影响用户的使用体验。因此&#xff0c;我们需要深入了解卡顿问题的原因&#xff0c;并寻找相应的解…

(Python)Requests+Pytest+Allure接口自动化测试框架从0到1搭建

前言&#xff1a;本文主要介绍在企业使用Python搭建接口自动化测试框架&#xff0c;数据驱动读取excel表里的数据&#xff0c;和数据库方面的交互&#xff0c;包括关系型数据库Mysql和非关系型数据库MongDB&#xff0c;连接数据库&#xff0c;读取数据库中数据&#xff0c;最后…

刷题DAY18

题目一 LRU算法的实现 做一个key-value结构 假如说这个LRU的大小为3 那么就是当KEY-value没满的时候 直接顺序加入 当满了的时候 把最长时间没有使用的key-value替换掉 要求实现一个put 和 get行为 时间复杂度均为O(1) 用双向链表哈希表实现 哈希表可以用系统封装的双向链表…

node笔记——调用免费qq的smtp发送html格式邮箱

文章目录 ⭐前言⭐smtp授权码获取⭐nodemailer⭐postman验证接口⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于node调用免费qq的smtp发送邮箱。 node系列往期文章 node_windows环境变量配置 node_npm发布包 linux_配置node node_nvm安装配置 node笔记_h…

嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

引言&#xff1a; 嵌入式开发作为计算机科学领域的重要分支&#xff0c;为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库&#xff0c;为学习者提供了更高效、更…

Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

1.简介 在实际工作中&#xff0c;我们经常会听到数据库的性能和稳定性等等&#xff0c;这些有时候也需要测试工程师去评估和测试&#xff0c;因此这篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家&#xff0c;希望对各位小伙…

浅谈JVM中的即时编译器(Just-In-Time compiler, JIT)

Java虚拟机&#xff08;JVM&#xff09;中的即时编译器&#xff08;Just-In-Time compiler, JIT&#xff09;是一个非常重要的组件&#xff0c;它负责将字节码转换为本地机器代码。在不使用JIT的情况下&#xff0c;JVM通过解释字节码来执行程序&#xff0c;这意味着它会为每个字…

24届近5年上海理工大学自动化考研院校分析

今天学姐给大家带来的是上海理工大学控制考研分析 满满干货&#xff5e;还不快快点赞收藏 一、上海理工大学 学校简介 上海理工大学&#xff08;University of Shanghai for Science and Technology&#xff09;是一所以工学为主&#xff0c;工学、理学、经济学、管理学、文…

如何实现Excel中多级数据联动

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 在类Excel表格应用中&#xff0c;常用的需求场景是根据单元格之间的数据联动&…

Leetcode-每日一题【剑指 Offer 13. 机器人的运动范围】

题目 地上有一个m行n列的方格&#xff0c;从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动&#xff0c;它每次可以向左、右、上、下移动一格&#xff08;不能移动到方格外&#xff09;&#xff0c;也不能进入行坐标和列坐标的数位之和大于k的格子。例…

css3背景渐变

1.线性渐变 <style>.box {width: 200px;height: 200px;border: 1px solid black;float: left;margin-left: 50px;}.box1 {background-image: linear-gradient(green, yellow, red);}/* 右上 */.box2 {background-image: linear-gradient(to right top, green, yellow, re…

Fortinet安全专家问答实录|如何防护暴力破解、撞库攻击

黑客攻防&#xff0c;一个看似神秘&#xff0c;但却必不可缺的领域。近期&#xff0c;全球网络与安全融合领域领导者Fortinet&#xff08;Nasdaq&#xff1a;FTNT&#xff09;&#xff0c;开启了Fortinet DEMO DAY系列实战攻防演练线上直播&#xff0c;让人人都能零距离观摩黑客…

spring cloud智慧工地源码(项目端+监管端+数据大屏+APP)

spring cloud智慧工地源码&#xff08;项目端监管端数据大屏APP&#xff09; 系统功能介绍 【智慧工地PC项目端功能总览】 一.项目人员管理 包括&#xff1a;信息管理、信息采集、证件管理、考勤管理、考勤明细、工资管理、现场统计、WIFI教育、工种管理、分包商管理、班组管…

5W2H分析法模版

&#xff08;1&#xff09;WHAT——是什么&#xff0c;目的是什么&#xff0c;做什么工作。 条件是什么&#xff0c;哪一部分工作要做&#xff0c;目的是什么&#xff0c;重点是什么&#xff0c;与什么有关系&#xff0c;功能是什么&#xff0c;规范是什么&#xff0c;工作对象…

【LeetCode】打家劫舍||

打家劫舍|| 题目描述算法分析编程代码 链接: 打家劫舍|| 在做这个题之前&#xff0c;建议大家做一下这个链接: 按摩师 我的博客里也有这个题的讲解&#xff0c;名字是按摩师 题目描述 算法分析 编程代码 class Solution { public:int maxrob(vector<int>nums,int left,…

View绘制流程-Window创建

前言&#xff1a; View绘制流程中&#xff0c;主要流程是这样的&#xff1a; 1.用户进入页面&#xff0c;首先创建和绑定Window&#xff1b; 2.首次创建以及后续vsync信号来临时&#xff0c;会请求执行刷新流程&#xff1b; 3.刷新流程完成后&#xff0c;会通知SurfaceFlin…

React源码解析18(1)------ React.createElement 和 jsx

1.React.createElement 我们知道在React17版本之前&#xff0c;我们在项目中是一定需要引入react的。 import React from “react” 即便我们有时候没有使用到React&#xff0c;也需要引入。原因是什么呢&#xff1f; 在React项目中&#xff0c;如果我们使用了模板语法JSX&am…