Springboot快速入门篇,图文并茂
Springboot快速入门篇,图文并茂
文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!
搜索关注微信公众号 【码出Offer】 领取各种学习资料!

一、Springboot概述
1.1 Springboot简介
SpringBoot是由Pivotal团队研发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合细节,实现敏捷开发。简单来说,SpringBoot就是一个启动器。
1.2 Springboot的特点
- SpringBoot项目不需要模板化的配置。
- SpringBoot中整合第三方框架时,只需要导入相应的starter依赖包,就自动整合了。
- SpringBoot默认只有一个.properties的配置文件,不推荐使用xml,后期会采用.java的文件去编写配置信息。
- SpringBoot工程在部署时,采用的是jar包的方式,内部自动依赖Tomcat容器,并且提供了多环境的配置。
- 后期要学习的微服务框架SpringCloud需要建立在SpringBoot的基础上。
二、快速构建Springboot
2.1 Spring官方快速构建
| New Project |
|---|
![]() |
| Spring Initializer Project Setting |
![]() |
| 选择版本和所需依赖 |
![]() |
| 填写项目名称和本地存储路径 |
![]() |
2.2 aliyun快速构建(解决加载失败)
如果Spring官方的快速构建加载出现问题,可以使用aliyun提供的Spingboot快速构建。
| aliyun快速构建Springboot |
|---|
![]() |
| 其他步骤与Spring官方构建一致 |
2.3 Spring与aliyun差别
使用Spring官方和aliyun快速构建的Springboot项目是有一些差距的,其实项目结构上没有本质的差距,只是在pom.xml文件中会出现一系列差距!
- aliyun使用并维护着Spring全家桶的2.3版本,其中加入了一些编码字符集处理与之aliyun所维护的依赖等
- Spring官方使用并维护着Spring全家桶的2.3.2版本,其中维护使用着Spring官方依赖等
注意: 两者没有本质差别,我们只需要使用即可!
2.4 导入核心依赖
此核心依赖有着Spring的大多数web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.5 编写Controller直接测试
直接访问路径即可出现页面并响应在浏览器上!
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "Hello SpringBoot!";
}
}
三、Springboot目录结构说明
| Springboot目录结构 |
|---|
![]() |
四、Springboot的三种启动方式
4.1 运行启动类的main方法
| 运行启动类的main方法 |
|---|
![]() |
4.2 使用Maven启动
| 使用Maven启动(mvn spring-boot:run) |
|---|
![]() |
4.3 使用Springboot打包的jar文件启动
首先,Springboot打包方式是jar的方法。默认使用maven 的package打包,而随之也会触发springboot内置的
springboot:repackage,而springboot的内置再次打包会在此jar文件的基础上内置一个tomact,也即是说使用Springboot打包的jar文件是可以执行的!
| 打包展示 |
|---|
![]() |
| DOS命令行执行 |
java -jar jar文件路径/jar包名字 |
五、Springboot入门注解
5.1 @Configuration和@Bean
- 之前使用SSM去开发时,在xml文件中编写bean标签,但是SpringBoot不推荐使用xml文件。
- @Configuration注解相当于beans标签
- @Bean注解相当于bean标签
- id=“方法名 | 注解中的name属性(优先级更高)”
- class=“方法的返回结果”
如下,举例子。
@Configuration // 代表当前类是一个配置类
public class UserConfig {
@Bean(name = "user1") // 构建一个实例,放到spring容器中
public User user(){
User user = new User();
user.setId(1);
user.setName("张三");
return user;
}
/* 与其相同作用
<beans ....> @Configuration
<bean id="user1" class="com.ziphtracks.firstspringboot.bean.User" />
</beans>
*/
}
5.2 @SpringBootApplication
@SpringBootApplication就是一个组合注解:
- @SpringBootConfiguration就是@Configuration注解,代表启动类就是一个配置类。
- @EnableAutoConfiguration帮你实现自动装配的,SpringBoot工程启动时,运行一个SpringFactoriesLoader的类,加载META-INF/spring.factories配置类(已经开启的),通过SpringFactoriesLoader中的load方法,以for循环的方式,一个一个加载。
- 好处:无需编写大量的整合配置信息,只需要按照SpringBoot提供好了约定去整合即可。
- 坏处:如果说你导入了一个starter依赖,那么你就需要填写他必要的配置信息。
- 手动关闭自动装配指定内容:@SpringBootApplication(exclude = QuartzAutoConfiguration.class)
- @ComponentScan就相当于,帮助扫描注解的。
注意: 你完全可以通过上述所说去翻看以下该注解的源码
| 源码 |
|---|
![]() |
5.3 @SpringBootTest
该注解用于测试启动项中,用于启动测试的注解
| 测试启动项注解配置 |
|---|
![]() |
六、Springboot配置文件
6.1 配置文件规范
SpringBoot的配置文件支持properties和yml,甚至他还支持json。
更推荐使用yml文件格式:
yml文件,会根据换行和缩进帮助咱们管理配置文件所在位置
yml文件,相比properties更轻量级一些
yml文件的注意事项:
严格遵循换行和缩进
在填写value时,一定要在: 后面跟上空格
6.2 多环境配置
在application.yml文件中添加一个配置项:
可以使用逗号( , )来激活多个环境
如下我创建了两个开发配置,一个用来开发的配置(dev)、另一个用来测试的配置(test),随后使用总的配置来激活这两个配置环境。
| 多环境配置 |
|---|
![]() |
6.3 引入外部配置文件信息
和传统的SSM方式一样,通过@Value的注解去获取properties/yml文件中的内容。
如果在yml文件中需要编写大量的自定义配置,并且具有统一的前缀时,采用如下方式
// Java程序
@ConfigurationProperties(prefix = "aliyun")
@Component
@Data
public class AliyunProperties {
private String name;
private Integer age;
}
// 配置文件
aliyun:
name: Ziph
age: 18
6.3 重新构建工程
| build |
|---|
![]() |
6.4 Springboot热部署
在做SSM项目时,我们会用到IDEA插件JRebel热部署神器来方便开发。因为热部署很受大家爱戴,所以Springboot也提供了热部署功能。如下:
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
| IDEASetting相关配置 |
|---|
![]() |
| Springboot启动项设置 |
![]() |
七、Springboot创建web目录
static文件夹是存储静态资源的,而我们的动态资源还是需要web目录结构存储的,于是我们创建一个web目录结构!
导入JSP以及JSTL核心依赖
<!--JSP核心引擎依赖-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!--JSTL-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
| 创建webapp以及WEB-INF等web目录结构 |
|---|
![]() |
| 添加web.xml |
![]() |
![]() |
| 展示web目录结构 |
![]() |
Springboot快速入门篇,图文并茂的更多相关文章
- SpringBoot基础篇-SpringBoot快速入门
SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...
- SpringBoot快速入门(实战篇一)
SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...
- SPRING-BOOT系列之SpringBoot快速入门
今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...
- SpringData 基于SpringBoot快速入门
SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...
- 私有仓库GitLab快速入门篇
私有仓库GitLab快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 安装文档请参考官网:https://about.gitlab.com/installation/#ce ...
- Hadoop生态圈-大数据生态体系快速入门篇
Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...
- Java基础-SSM之Spring快速入门篇
Java基础-SSM之Spring快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...
- Java基础-SSM之mybatis快速入门篇
Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...
- Hadoop生态圈-Hive快速入门篇之HQL的基础语法
Hadoop生态圈-Hive快速入门篇之HQL的基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的重点是介绍Hive中常见的数据类型,DDL数据定义,DML数据操作 ...
随机推荐
- Python Ethical Hacking - TROJANS Analysis(4)
Adding Icons to Generated Executables Prepare a proper icon file. https://www.iconfinder.com/ Conver ...
- Dresdon二次开发
在上一篇文章中,我们已经对Dresdon所提供的功能进行了简单的介绍.在这篇文章中,我们将介绍如何基于Dresdon进行二次开发. Dresdon的扩展点 就像上一篇文章所介绍的那样,Dresdon主 ...
- 实践使用nodejs获取用户真实IP?
先上代码 var http = require('http') var server = http.createServer(function (req,res) { console.log(req. ...
- 写给程序员的机器学习入门 (八) - 卷积神经网络 (CNN) - 图片分类和验证码识别
这一篇将会介绍卷积神经网络 (CNN),CNN 模型非常适合用来进行图片相关的学习,例如图片分类和验证码识别,也可以配合其他模型实现 OCR. 使用 Python 处理图片 在具体介绍 CNN 之前, ...
- MVC + EFCore 项目实战 - 数仓管理系统7 - 数据源管理中--新增数据源
上篇我们完成了数据源列表展示功能(还未测试). 本篇我们来新增数据源,并查看列表展示功能. 接上篇: 二.数据源管理功能开发 2.新增数据源 我们用模态对话框来完成数据源的新增,效果如下图: 我们 ...
- Invalid RNPermission 'ios.permission.xxx'. should be one of: ( )
原因可能是配置配置问题, 我碰到的是Android上完美运行,iOS报错,原因是前期用的Android开发,iOS的配置项没有配完整 按照官方配置一遍 https://github.com/react ...
- 毫无基础的人入门Python,Python入门教程
随着人工智能的发展,Python近两年也是大火,越来越多的人加入到Python学习大军,对于毫无基础的人该如何入门Python呢?这里整理了一些个人经验和Python入门教程供大家参考. 如果你是零基 ...
- R 数据读取与写入
路径 getwd() #获取当前工作路径 setwd() #设置工作路径 获取普通文本数据 x = read.table("data.txt") #通过路径直接获取 x = rea ...
- 关于RecyclerView(一)基本使用
前言 最近在项目中用到了ListView,不知道为什么总是出现数据错乱的情况,另外RecyclerView包含很多Item动画,所以改成了RecyclerView. 简单使用 RecyclerView ...
- js:事件(注册、解绑、DOM事件流、事件对象、事件委托)
1.注册事件 (1)传统方式注册事件 <body> <button id="b1">请点击</button> <script> va ...


















