Springboot快速入门篇,图文并茂

时间:2023-02-04 23:37:52

Springboot快速入门篇,图文并茂

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



Springboot快速入门篇,图文并茂
image-20200809125922162

一、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
Springboot快速入门篇,图文并茂
image-20200806123015729
Spring Initializer Project Setting
Springboot快速入门篇,图文并茂
image-20200806132012542
选择版本和所需依赖
Springboot快速入门篇,图文并茂
image-20200806132155855
填写项目名称和本地存储路径
Springboot快速入门篇,图文并茂
image-20200806132305740

2.2 aliyun快速构建(解决加载失败)

如果Spring官方的快速构建加载出现问题,可以使用aliyun提供的Spingboot快速构建。

aliyun快速构建Springboot
Springboot快速入门篇,图文并茂
image-20200806133208551
其他步骤与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快速入门篇,图文并茂
image-20200809132750413

四、Springboot的三种启动方式

4.1 运行启动类的main方法

运行启动类的main方法
Springboot快速入门篇,图文并茂
image-20200809133203728

4.2 使用Maven启动

使用Maven启动(mvn spring-boot:run)
Springboot快速入门篇,图文并茂
image-20200809133408621

4.3 使用Springboot打包的jar文件启动

首先,Springboot打包方式是jar的方法。默认使用maven 的package打包,而随之也会触发springboot内置的springboot:repackage,而springboot的内置再次打包会在此jar文件的基础上内置一个tomact,也即是说使用Springboot打包的jar文件是可以执行的!

打包展示
Springboot快速入门篇,图文并茂
image-20200809133839975
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就相当于,帮助扫描注解的。

注意: 你完全可以通过上述所说去翻看以下该注解的源码

源码
Springboot快速入门篇,图文并茂
image-20200809135539749

5.3 @SpringBootTest

该注解用于测试启动项中,用于启动测试的注解

测试启动项注解配置
Springboot快速入门篇,图文并茂
image-20200809141258160

六、Springboot配置文件

6.1 配置文件规范

SpringBoot的配置文件支持properties和yml,甚至他还支持json。

更推荐使用yml文件格式:

  1. yml文件,会根据换行和缩进帮助咱们管理配置文件所在位置

  2. yml文件,相比properties更轻量级一些

yml文件的注意事项:

  1. 严格遵循换行和缩进

  2. 在填写value时,一定要在: 后面跟上空格

6.2 多环境配置

在application.yml文件中添加一个配置项:

可以使用逗号( , )来激活多个环境

如下我创建了两个开发配置,一个用来开发的配置(dev)、另一个用来测试的配置(test),随后使用总的配置来激活这两个配置环境。

多环境配置
Springboot快速入门篇,图文并茂
image-20200809142928925

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
Springboot快速入门篇,图文并茂
image-20200809143338884

6.4 Springboot热部署

在做SSM项目时,我们会用到IDEA插件JRebel热部署神器来方便开发。因为热部署很受大家爱戴,所以Springboot也提供了热部署功能。如下:

导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>
IDEASetting相关配置
Springboot快速入门篇,图文并茂
image-20200809171517524
Springboot启动项设置
Springboot快速入门篇,图文并茂
image-20200809171648412

七、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目录结构
Springboot快速入门篇,图文并茂
image-20200809172236167
添加web.xml
Springboot快速入门篇,图文并茂
image-20200809172408724
Springboot快速入门篇,图文并茂
image-20200809172554940
展示web目录结构
Springboot快速入门篇,图文并茂
image-20200809172758250

Springboot快速入门篇,图文并茂的更多相关文章

  1. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  2. SpringBoot快速入门(实战篇一)

    SpringBoot快速入门(一) 一SpringBoot简介 1.spring开发经历的阶段 Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 ...

  3. SPRING-BOOT系列之SpringBoot快速入门

    今天 , 正式来介绍SpringBoot快速入门 : 可以去如类似 https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/refer ...

  4. SpringData 基于SpringBoot快速入门

    SpringData 基于SpringBoot快速入门 本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现.这样可以从实战 ...

  5. 私有仓库GitLab快速入门篇

    私有仓库GitLab快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 安装文档请参考官网:https://about.gitlab.com/installation/#ce ...

  6. Hadoop生态圈-大数据生态体系快速入门篇

    Hadoop生态圈-大数据生态体系快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.大数据概念 1>.什么是大数据 大数据(big data):是指无法在一定时间 ...

  7. Java基础-SSM之Spring快速入门篇

    Java基础-SSM之Spring快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java ...

  8. Java基础-SSM之mybatis快速入门篇

    Java基础-SSM之mybatis快速入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实你可能会问什么是SSM,简单的说就是spring mvc + Spring + m ...

  9. Hadoop生态圈-Hive快速入门篇之HQL的基础语法

    Hadoop生态圈-Hive快速入门篇之HQL的基础语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的重点是介绍Hive中常见的数据类型,DDL数据定义,DML数据操作 ...

随机推荐

  1. and 与 &amp&semi;&amp&semi; or 与 &vert;&vert; 的差异之处

    其实就是比较他们的优先级 // --------------------// "||" 比 "or" 的优先级高 // 表达式 (false || true)  ...

  2. 监控 Linux Unix Solaris AIX&comma; swap page in &sol; swap page out

    vmstat 的 pi/po si/so --监控一天 vmstat 5 17280> vmstat.txt sar -W 1.得到数据 (linux 的 /var/log/sar/saX 自带 ...

  3. Centos系统安装

    Centos系统安装 安装系统前的注意事项 1) 硬件CPU必须支持虚拟化技术,在支持虚拟化的前提下我们还要去把虚拟 的功能打开否则在安装的时候会报错,开启虚拟化需要在BIOS中开启 2)创建虚拟机的 ...

  4. Python学习笔记 - map reduce

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- def f(x): return x * x r = map(f, [1, 2, 3, 4, 5, 6, ...

  5. servlet与jsp篇(一)&dollar;&period;ajax交互

    servlet其实是利用java类编写的服务器端应用程序,他的生命周期可以分为三个阶段:初始化阶段.运行阶段和消亡阶段; jsp页面实质上是一个HTML页面,但他包含了用户产生动态网页内容的java代 ...

  6. python入门学习:9&period;文件和异常

    python入门学习:9.文件和异常 关键点:文件.异常 9.1 从文件中读取数据9.2 写入文件9.3 异常9.4 存储数据 9.1 从文件中读取数据 9.1.1 读取整个文件  首先创建一个pi_ ...

  7. &lbrack;Node&period;js&rsqb; 00 - Where do we put Node&period;js

    Ref: 前后端分离的思考与实践(五篇软文) 其实就是在吹淘宝自己的Midway-ModelProxy架构. 第一篇 起因 为了提升开发效率,前后端分离的需求越来越被重视, 同一份数据接口,我们可以定 ...

  8. 【来龙去脉系列】深入理解DIP、IoC、DI以及IoC容器

    摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...

  9. memcmp 和 memcpy使用

    #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...

  10. 函数去抖(debounce)与 函数节流(throttle&rpar;

    以下场景往往由于事件频繁被触发,因而频繁执行DOM操作.资源加载等重行为,导致UI停顿甚至浏览器崩溃. 1. window对象的resize.scroll事件 2. 拖拽时的mousemove事件 3 ...