快速使用SpringBoot

1. 聊聊Spring

当看到这篇文章时,对spring的已经有了一定的了解,大家可能在使用spring时感觉有点迷迷糊糊的,大家可以想一下,在没有使用spring框架时,手动写servlet的感觉,不仅开发的复杂难度大,而且开发效率低。

在使用spring后,使用xml和注解的方式进行开发,使开发效率大幅度提高,充分体现了Spring的组件代码是轻量级的,但是配置文件却堪称重量级的(在熟练使用spring配置后,有时的粗心,可能导致错误的情况),使用spring的不爽的两件事之一:

  1. 开发项目浪费在配置上时间长。在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间
  2. 项目的依赖管理容易出错。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开
    发进度。

为了解决上述的问题,Spring Boot就诞生了。
SpringBoot基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率。

2. Spring Boot简介

2.1 Spring Boot 特征

  • 创建独立的Spring应用程序
  • 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
  • 提供自以为是的“入门”依赖项,以简化构建配置
  • 尽可能自动配置Spring和3rd Party库
  • 提供可用于生产的功能,例如指标,运行状况检查和外部化配置
  • 完全没有代码生成,也不需要XML配置

2.2 Spring Boot核心功能

  • 起步依赖
    起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
    简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
  • 自动配置
    Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

3. 创建Spring Boot

1.创建模块,按图选择
在这里插入图片描述2.自行填写GroupId和ArtigactId,注意创建的Package是不是你想要的
在这里插入图片描述3.我们选择web下的spring web 进行添加
在这里插入图片描述4.填写模块的名字和存放的位置(我已修改),点击完成
在这里插入图片描述

5.将java和resources转换成对应的文件格式

在这里插入图片描述6.编写controller类(com.chao.controller.FirstController)
在这里插入图片描述7.启动springboot

  1. 方式一:在这里插入图片描述- 方式二:mvn spring-boot:run
    在这里插入图片描述在这里插入图片描述

8.显示结果
在这里插入图片描述

4.SpringBoot的热部署

大家可能对名字有点懵,大家先不要慌,其实大家都使用过,在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,热部署就是在修改代码后不重启就能生效,需要怎么做呢?三步搞定,听我细细说来:

  1. pom.xml 中添加如下配置
<!--热部署配置--> 
<dependency> 
	<groupId>org.springframework.boot</groupId> 
	<artifactId>spring-boot-devtools</artifactId> 
</dependency>
  1. 在setting中更改此配置,记得apply和保存啊在这里插入图片描述
  2. 按住Shift+Ctrl+Alt+/,选择Registry
    它是按照首字母排列的慢慢找下
    在这里插入图片描述
    这样热部署就完成了,你就可以在不重启的情况下,进行调试代码了。
    (注意:你修改代码后,等控制台有对应日志打出在访问,差不多3s就可以了)

5. 两个依赖一个引导类

刚才使用的模板创建的springboot,可能过程比较繁琐,大家还是按要求做下来,能够坚持已经很棒了,我给大家说说springboot模板到底有什么东西,为什么他能省去我们半个小时的配置文件。
说白了就两个依赖和一个引导类。

5.1 添加SpringBoot的起步依赖

项目要继承SpringBoot的起步依赖spring-boot-starter-parent,这是使用springboot所必须的。

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.13.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

按住Ctrl点击pom.xml中的spring-boot-starter-parent,

spring-boot-starter-parent主要有:
继承于spring-boot-dependencies
引入resources的资源
定义了一些插件

按住Ctrl点击pom.xml中的spring-boot-starter-dependencies,

spring-boot-dependencies主要(版本控制)有:
maven的版本控制
mysql的版本控制
…有点多

5.2 添加web的启动依赖

SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖,这是我们选择使用的。

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

按住Ctrl点击pom.xml中的spring-boot-starter-web,

spring-boot-starter-web主要有:
tomcat的版本控制
hibernate的版本控制
spring-web的版本控制
spring-webmvc的版本控制

5.3 引导类

package com.chao;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//声明这是一个springboot的引导类
@SpringBootApplication
public class SpringbootDemoApplication {
    
    public static void main(String[] args) {
        //run表示运行springboot的引导类
        //参数:springboot引导类的字节码对象
        SpringApplication.run(SpringbootDemoApplication.class, args);
    }
    
}

那**@SpringBootApplication**神奇的注解里面到底有什么呢?

  • @SpringBootConfiguration里由@Configuration实现,具备标注该类时是spring的配置类
  • @ComponentScan spring中的组件扫描,扫描范围:引导类同级和其子级的包,所以引导类最好配置到根目录下
  • @EnableAutoConfiguration 自动配置的注解 (注解如下)
    – @Import 当前的EnableAutoConfiguration的注解下引入其他的注解类(代码有点深,挖到最后就默认加载ci注解包,里面有大量的配置信息)
    在这里插入图片描述

6.Spring Boot的文件类型

此文件中包含我们常用的配置,例如server.servlet.context-path(访问路径)和server.port(端口号):
在这里插入图片描述在这里插入图片描述

我们可以使用配置文件进行修改
默认支持下图三种配置文件,默认加载的位置时resources下
注意:配置文件的加载顺序,后者会把前者覆盖掉
在这里插入图片描述
添加application.yml文件

# 普通键值对
name: wxc
# server.port=8081 包含层级的
server:
  port: 8081
# 配置对象
student:
  name: 小王
  age: 18
  address: China
# 或者 student: {name: 小王,age: 18,addr: China}

# 配置 Map
mapName:
  name1: a
  name2: b
  name3: b

# 配置数组(List、Set)数据
arrString:
  - xiaoA
  - xiaoB
  - xiaoC
# 或者 arrString: [xiaoA,xiaoB,xiaoC]

#集合
students:
  - name: zhangsan
    age: 18
    score: 100
  - name: lisi
    age: 28
    score: 88
  - name: wangwu
    age: 38
    score: 90
# 注意-后面的空格
  1. 访问普通键值对
    在这里插入图片描述
  2. 访问对象

在这里插入图片描述

${student.name}一个一个取太麻烦
使用@ConfigurationProperties一键搞定

第一步:添加student对象的属性(name,age,address)并添加get,set方法
第二步:添加@ConfigurationProperties注解,并添加前缀(name,age,address都是student的属性)
即:@ConfigurationProperties(prefix = "student")
在这里插入图片描述

其实到这里已经能访问了,但是大家注意上面有一个警告。
没有发现Spring Boot 注解的处理器
有强迫的程序员都会处理掉的,于是有了第三步。

第三步:点击右上角 Open Documentation…
默认跳转到下界面 (不要随意滑动,免得找不到依赖)
将依赖添加到pom.xml文件即可
在这里插入图片描述

7.Spring Boot整合

SpringBoot整合MyBatis

SpringBoot整合Junit

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值