Spring Boot学习笔记(一)----概要与入门
本文来自博客园,作者:{张果},转载请注明原文链接:{SpringBoot学习笔记(一)——SpringBoot概要与快速入门}
一、Spring Boot概要
没有Spring Boot开发项目时各框架间的集成(如SSM)非常繁琐,兼容性问题处理麻烦,开发效率低。
1.1、Spring Boot 简介
使用 Spring Boot 可以很容易地创建出能直接运行的独立的、生产级别的基于 Spring 的应用。我们对 Spring 平台和第三方类库有自己的考虑,因此您可以从最基本的开始。大多数 Spring Boot 应用只需要很少的 Spring 配置。
您可以使用 Spring Boot 来创建一个可以使用 java -jar
命令来运行或者基于传统的 war 包部署的应用程序。我们还提供了一个用于运行 spring scripts 的命令行工具。
我们的主要目标是:
- 为所有 Spring Boot 开发提供一个更快、更全面的入门体验。
- 坚持自我虽好,但当需求出现偏离,您需要能迅速摆脱出来。
- 提供大量非功能性特性相关项目(例如:内嵌服务器、安全、指标、健康检查、外部配置)。
- 绝对没有代码生成,也不要求 XML 配置。
SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。2014 年 4 月,Spring Boot 1.0.0 发布。Spring的顶级项目之一(https://spring.io)。
1.2、Spring Boot特性
Spring Boot包含以下几个特性:
(1)、默认提供了大部分框架的使用方式,方便进行快速集
(2)、Spring Boot应用可以独立运行,符合微服务的开发理念
(3)、Spring Boot内置WEB容器,无需部署WAR包即可运行
(4)、提供了各种生产就绪型功能,如指标,健康检查和外部配置
(5)、Spring Boot通过网站提供了项目模板,方便项目的初始化
Spring Boot 兼容 Apache Maven 3.2 或更高版本。如果您还没有安装 Maven,可以到 maven.apache.org
您可以跟使用任何标准 Java 库的方式一样使用 Spring Boot。只需要在 classpath 下包含相应的 spring-boot-*.jar
文件即可。Spring Boot 不需要任何专用的工具来集成,因此您可以使用任何 IDE 或者文本编辑器,并且 Spring Boot 应用也没什么特殊之处,因此可以像任何其它 Java 程序一样运行和调试。
虽然您可以复制 Spring Boot 的 jar 文件,但我们通常建议您使用支持依赖管理的构建工具(比如 Maven 或者 Gradle)。
您可以将 Spring Boot 应用部署到任何一个 Servlet 3.0+ 兼容容器中。
虽然您可以在 Java 6 或者 Java 7 上使用 Spring Boot,但我们还是强烈推荐您使用 Java 8+。
1.3、Spring Boot资源
官网:
https://spring.io/projects/spring-boot
官方文档:
https://docs.spring.io/spring-boot/docs/current/reference/html/
官方文档翻译:
https://www.springcloud.cc/spring-boot.html
http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/
https://github.com/DocsHome/springboot
banner生成:
https://www.bootschool.net/ascii
1.4、前置学习内容
视频bilibili:
(1)、Java编程(JavaSE、JavaWeb、反射、泛型、多线程、AJAX)
(4)、Spring MVC(IDEA、Maven、SSM框架集成、多模块)
二、我的第一个SpringBoot程序
2.1、生成项目模板
2.1.1、在线生成项目模板
为方便我们初始化项目,Spring Boot给我们提供一个项目模板生成网站。
(1). 打开浏览器,访问:https://start.spring.io/
(2). 根据页面提示,选择构建工具,开发语言,项目信息等。
(3). 点击 Generate the project,生成项目模板,生成之后会将压缩包下载到本地。
当然,也可以在线预览项目生成后的代码,只需点击如下按钮即可:
在新窗口中就可以查看生成的代码了:
(4). 使用IDE导入项目,我这里使用IDEA,通过导入Maven项目的方式导入。
选择Maven项目:
多数情况下都直接Next就可以了,导入成功的项目如下所示:
2.1.2、IDE(集成开发工具)生成项目模板
(1)、创建新项目
(2)、选择Spring Initializr
(3)、选择填写项目信息
(4)、添加依赖
(5)项目位置与名称设定
点击完成就创建成功。
2.2、添加控制器
在“com.gdnf.hello”这个包下面添加一个类取名“HelloController”:
添加一个Action,并注解好:
package com.gdnf.hello; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController //注解告诉Spring将结果字符串直接呈现给调用者
public class HelloController { @RequestMapping("/hi") //路径映射
public String hello(){
return "Hello Spring Boot!";
}
}
添加成功后:
2.3、启动并运行
点击右上角绿色箭头就可以直接运行了,如要端口被占用(默认8080),可以配置修改,控制台信息如下:
在浏览器中输入:localhost:8081/hi就可以访问到定义到的action,如下所示
三、SpringBoot项目组成
3.1、默认目录结构
刚创建好的Spring Boot的项目结构比较简单,只包含三个文件夹。
src/main/java 放置程序开发代码
src/main/resources 放置配置文件
src/test/java 放置测试程序代码
而在其下,包含以下主要文件。
xxxApplication.java 应用的启动类,包含MAIN方法,是程序的入口
application.properties 一个空的配置文件,后续可以配置数据源等信息,比如修改端口号
xxxApplicationTests.java 一个简单的单元测试类
pom.xml mave的配置文件,是管理整个项目开发流程的核心文件
3.2、注解与代码
3.2.1、@RestController和@RequestMapping 注解
Example
类的第一个注解是@RestController
。这被称为 构造型注释。它为阅读代码的人提供了提示,并为Spring提供了该类扮演特定角色的提示。在这种情况下,我们的类是一个web @Controller
,所以Spring在处理传入的Web请求时会考虑它。
@RequestMapping注解
提供“路由”信息。它告诉Spring任何带有/
路径的HTTP请求都应该映射到home
方法。
@RestController
注解告诉Spring将结果字符串直接呈现给调用者。
@RestController的作用等同于@Controller + @ResponseBody
3.2.2、@EnableAutoConfiguration注解
第二个类级别注释是@EnableAutoConfiguration。这个注释告诉Spring Boot根据你添加的jar依赖关系“猜测”你想要如何配置Spring。由于spring-boot-starter-web添加了Tomcat和Spring MVC,因此自动配置假定您正在开发Web应用程序并相应地设置Spring。
Starters和自动配置
自动配置旨在与“Starters”配合使用,但这两个概念并不直接相关。您可以自由选择并在首发之外选择jar依赖项。Spring Boot仍然尽力自动配置您的应用程序。
3.2.3、main方法
我们的应用程序的最后一部分是main
方法。这只是遵循应用程序入口点的Java约定的标准方法。我们的主要方法是通过调用run
来委托Spring Boot的SpringApplication
类。SpringApplication
引导我们的应用程序,从Spring开始,然后启动自动配置的Tomcat Web服务器。我们需要将Example.class
作为参数传递给run
方法,以告诉SpringApplication
哪个是主要的Spring组件。还会传递args
数组以公开任何命令行参数。
四、作业
4.1、配置好Spring Boot开发环境。
4.2、完成第一个Spring Boot程序,要求如下:
- 编写后台服务接收前端提交的参数,n1,n2
- 前端使用vue与axios消费后台提供的服务,将响应回前台的数据填写在文档框n3中
Spring Boot学习笔记(一)----概要与入门的更多相关文章
- Spring Boot学习笔记2——基本使用之最佳实践[z]
前言 在上一篇文章Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用已经对Spring Boot的基本体系与基本使用进行了学习,本文主要目的是更加进一步的来说明对于Spring B ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- Spring Boot 学习方法论-如何正确的入门 Spring Boot
想要入门 Spring Boot,那么什么样的教程是符合初学者学习的(没有太多的Java基础但有一些程序基础或者软件编程知识). 这恰好能够勾出很多问题,比如是文章图文教程适合还是视频教程适合零基础初 ...
- Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用[z]
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- Spring Boot 学习笔记1---初体验之3分钟启动你的Web应用
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- Spring Boot学习笔记二
Spring Boot入门第二篇 第一天的详见:https://www.cnblogs.com/LBJLAKERS/p/12001253.html 同样是新建一个pring Initializer快速 ...
- Spring Boot 学习笔记--整合Thymeleaf
1.新建Spring Boot项目 添加spring-boot-starter-thymeleaf依赖 <dependency> <groupId>org.springfram ...
- 我的第一个spring boot程序(spring boot 学习笔记之二)
第一个spring boot程序 写在前面:鉴于spring注解以及springMVC的配置有大量细节和知识点,在学习理解之后,我们将直接进入spring boot的学习,在后续学习中用到注解及其他相 ...
- Java框架spring Boot学习笔记(六):Spring Boot事务管理
SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.
- Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...
随机推荐
- Jmeter中通过V函数使Foreach控制器有多个输入变量
需求:Foreach 控制器只能有一个输入变量.但是实际情况会出现需要使用多个变量. 如:上一个接口获取到多个字段且每个字段用Json提取器获取的时候都是一个集合,期望将获取到的字段传给下一个接口. ...
- Kafka教程(一)基础入门:基本概念、安装部署、运维监控、命令行使用
Kafka教程(一)基础入门 1.基本概念 背景 领英->Apache 分布式.消息发布订阅系统 角色 存储系统 消息系统 流处理平台-Kafka Streami ...
- Idea中Git的常用操作及可能存在的问题
一.使用 1.从git上下载项目 (1)默认branch下载(pull) (2)指定branch下载 (3)克隆远程仓库到本地(git clone) git clone https://github. ...
- 使用JsonConverter处理上传文件的路径
场景 我们上传一个文件,把文件保存到服务器上,会有一个明确的物理路径,由于需要从前端访问这个文件,还需要web服务器中的一个虚拟路径.这个虚拟路径的存储会有一个问题,我们应该在数据库里存什么?是带域名 ...
- python3使用OCR识别图片
放假三天,闲来无事,想学下python爬虫.本想跟着网上教程操作一遍,奈何安装使用过程中出现一堆问题,并且在网上搜了一堆复制黏贴的答案,关键都不能起作用,最后终于找到一篇生效,为了以后不至于再经历这种 ...
- M.2 SSD固态硬盘上安装windows问题
近来M2硬盘大降价,笔记就趁便宜买了一个2T的M.2固态硬盘,插在笔记本上,接下来安装win11,本想以前安装多次,也是老手了,没想到遇到很多问题,一度陷入僵局,不过最终还是安装成功了,下面记录下安装 ...
- [OpenCV实战]8 深度学习目标检测网络YOLOv3的训练
目录 1 数据集 1.1 下载openImages雪人数据[约1.5小时] 1.2 训练集测试集拆分 2 Darknet 2.1 下载并构建Darknet 2.2 修改代码以定期保存模型文件 2.3 ...
- [R语言] R语言PCA分析教程 Principal Component Methods in R
R语言PCA分析教程 Principal Component Methods in R(代码下载) 主成分分析Principal Component Methods(PCA)允许我们总结和可视化包含由 ...
- [编程基础] C和C++内置宏说明
文章目录 1 内置的宏定义 2 运行平台宏 3 编译器宏 4 调试类型宏 5 代码 C和C++内置宏在代码调试.跨系统平台代码中会经常使用,本文记录说明一下.内置宏不需要调用头文件,可直接使用.在使用 ...
- .net core操作MongoDB
前言 现实中认识的一个搞java(百万富婆)的大佬,已经转行做抖音主播了,搞技术的只能赶在年前再水一篇博客,不足之处欢迎拍砖,以免误人子弟,呔,真是太难受了 环境准备 .net core 3.1 Mo ...