首页 > 其他分享 >第一章springboot开发入门

第一章springboot开发入门

时间:2024-11-12 17:16:04浏览次数:3  
标签:springboot 项目 Spring 单元测试 第一章 Boot spring 入门

学习目标:

对于掌握和熟悉的东西需要背下来

1.1 Spring Boot 概述


1.1.1 Spring Boot简介

springboot的历史(也可以另外看文字,了解历史有助于你提高对框架的学习和理解):spring框架虽然已经是轻量级的啦,但是配置文件是重量级的,随着生产中敏捷开发的需要,在spring中使用注解开发逐渐成为主流,这个时候有一个团队基于spring框架开发了全新的springboot框架,之后不断升级,出现啦springboot2.X,推荐使用优化过后的2.x版本。

springboot不是替代spring框架的解决方案,只是 和spring框架结合,提升spring框架开发者体验的工具,springboot集成啦很多第三方库配置。大部分springboot应用只需要一点配置就可以完成相应的功能,这样可以让开发者集中精力在业务逻辑实现上。


1.1.2 Spring Boot 的优点

1.springboot只需要配置相关的场景依赖,就可以快速构建出一个独立的spring应用。

2.springboot框架内嵌啦tomcat,jetty等服务器,可以自动将项目打包,项目运行的是时候部署到服务器上。

3.不需要引入相应的jar包,只需要根据开发场景需求选择对应的依赖启动器,在引入的依赖启动器内部已经有啦对应的依赖,它会自动下载拉取相关的jar包。

4.自动化配置spring和第三方库,他的内部有各种自动化配置类,引入某个场景的依赖启动器,springboot内部提供的默认启动类就会生效。

5.提供生成就绪功能

6。很少的代码生成和xml配置。

在学习springboot之前你要对spring框架有一定的理解。


1.2 Spring Boot 入门程序


1.2.1 环境准备

本书讲解的版本是:2.1.3版本的springboot,你可以观看自己的springboot版本,对应的jdk版本。

Spring Boot各版本与Java版本的对应兼容关系,与构建工具(Maven、Gradle)版本的对应兼容关系,对servlet 容器的支持_springboot java版本-CSDN博客

项目管理工具:maven 3.60,也可以用自己相关的版本的maven

开发工具:idea。


1.2.2 使用 Maven 方式构建 Spring Boot项目

在这之前需要idea配置maven和jdk:
IDEA配置Maven(详细版)_idea maven-CSDN博客

IDEA配置JDK_idea设置jdk-CSDN博客


1.2.3使用 Spring Initializr 方式构建Spring Boot 项目

使用maven创建springboot项目的方法在网上自行查找,我比较喜欢使用idea直接创建springboot项目:Spring Initializr是一个web应用,能够帮我们快速构建springboot项目
1.

2.服务器url使用默认的地址:,使用这个方式创建springboot项目需要联网。

3.进入场景依赖选则页面:

这个用来选中springboot版本

这里是开发场景,每一个场景汇总啦多种技术实现方案,比如web场景下有springweb依赖技术实现方案。选中对应的依赖springboot项目创建之后会自动导入依赖,如图进行操作:

springboot项目结构如下:

使用这个方式创建springboot项目会自动生成:1.项目启动类,2.存放前端静态资源和页面的文件夹,3.项目配置的配置文件,4.单元测试的测试类。

创建一个用于web访问的请求处理控制器类Controller,编写一个处理方法:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

//这个注解的作用:把这个类作为控制器的组件,添加到spring容器中,该类方法无法返回jsp页面,会返回json页面
@RestController//这个等同于spring中的@Controller+@ResponseBody
public class HelloController {

    //设置方法的请求访问路径,并设置访问方式为:get方式,
    @GetMapping("/hello")//相当于spring中的@RequestMapping(RequestMethid,GET)
    public String hello(){
        return "fanronglou";
    }

}

启动项目就可以啦。


1.3 单元测试与热部署.


1.3.1 单元测试

每次编写完一个接口或者业务方法之后都要用的单元测试进行验证是否正确。在pom文件需要添加

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

构建项目的时候会自动添加对应依赖。

现在可以编写对应方法的测试类啦:



import com.waiguoyu.oneday.Controller.HelloController;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


//跟项目主程序启动类相连的单元测试类
@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境
class OnedayApplicationTests {
//新增单元测试方法:1.注入要测试的实例对象,2.在对应的单元测试类中调用想要测试的请求方法
    @Autowired
    private HelloController helloController;

    @Test
    public void hellocontrollertest(){
        String hrll = helloController.hello();
        System.out.println(hrll);
    }



    //单元测试示例
    @Test
    void contextLoads() {
    }

}

出现这个代表成功


1.3.2 热部署

热部署的依赖启动器:有时候需要修改代码然后又启动项目,耗时间比较久,就需要使用这个,不用开发人员手动启动项目。

1.添加热部署依赖:

//热部署依赖
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

2.idea工具热部署设置:勾选自动构建项目选项

3.

看热部署有没有完成就看,你运行项目后,修改方法返回值,刷新界面,看界面有没有返回修改后的值。


1.4 Spring Boot 原理分析


1.4.1 Spring Boot 依赖管理


1.4.2 Spring Boot自动配置

对项目入口进行解析:

1.@SpringBootApplication是一个集合注解,包含啦三个spring的注解,如下

第一个注解:用于标识被组件扫描器扫描的配置类。

第二个有点复杂没看懂,可以另外看文章,大概就是讲如何找到对应的组件,定位对应的组件,以及配置组件

第三个注解:将指定包中的注解类自动配置到bean容器中。

这里的目标需要理解这几个配置类


1.4.3 Spring Boot 执行流程

文字的太复杂啦,主要就是解析

SpringApplication.run(OnedayApplication.class, args);这个方法,大家可以看具体的源码进行理解

这个执行流程了解就可以啦


1.5 本章小结

本章学习我学会如何创建springboot项目,并且能看懂pom文件管理的方式,理解它每段代码的作用,知道如何书写springboot项目业务代码的单元测试方法,以及设置热部署(在启动项目的情况下更新代码,就不用一直启动啦),并且了解啦springboot的相关注解的作用,还有springboot的相关原理。


1.6 习题

我个人的答案:1.spring,2.约定优先配置,3.8,4.maven,gradle,5.@Controller+@ResponseBody。6.错,7.错 8.对 9.错,10.错

1.abcd,2.D,3.A,BC,4.B,5.A

课后训练:

需要记住:1.springboot的项目结构,2.@RestController, @GetMapping("/hello")注解的作用

这里需要记住:1.单元测试的流程,2.@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境

这里需要记住:1.单元测试的流程,2.@RunWith(SpringRunner.class)//测试运行器,加载springboot测试注解
@SpringBootTest//标记单元测试类,加载项目的上下文环境

需要课外单独去熟悉springboot原理分析,主要就是springboot启动类那边的注解以及对应的方法。

标签:springboot,项目,Spring,单元测试,第一章,Boot,spring,入门
From: https://blog.csdn.net/laiyoumi/article/details/143653262

相关文章

  • springboot高校心理测评系统-计算机毕业设计源码25173
    目 录第1章 引 言1.1 选题背景1.2 研究现状1.3 论文结构安排第2章 系统的需求分析2.1 系统可行性分析2.1.1 技术方面可行性分析2.1.2 经济方面可行性分析2.1.3 法律方面可行性分析2.1.4 操作方面可行性分析2.2 系统功能需求分析2.......
  • 基于SpringBoot+Vue的新闻资讯系统+万字论文+Mp4演示
    系统简介:基于SpringBoot+Vue的新闻资讯系统+万字论文+Mp4演示资源描述:是否有万字论文:有是否有论文视频:有是否有PPT:没有是否有Mp4演示:有是否有演示站:有是否前后端分离:是技术栈:Java:JDK8主要编程语言,用于后端开发MySQL:数据库管理系统,用于存储和......
  • springboot2+mybatis+shardingsphere-5.5.1
    注意:1.druid不能boot-starter方式引入2.snakeyaml需要1.33('voidorg.yaml.snakeyaml.LoaderOptions.setCodePointLimit(int)') #303183.spring.datasource.driverClassName:org.apache.shardingsphere.driver.ShardingSphereDriver4.如果使用了quartz,需要指定独立数据源(Tabl......
  • 运维工程师的出路到底在哪里?零基础入门到精通,收藏这篇就够了
    目录前言一、运维工程师的职责二、能力要求(一)技术方面(二)管理方面(三)业务方面三、35岁被称为运维半衰期,究竟为何?四、该如何顺利过渡半衰期五、运维的职业发展路径总结前言你是不是也常常听到身边的运维人员抱怨,他们的出路到底在哪里呢?别着急,让我告诉你,运维人员......
  • 自动驾驶仿真:软件在环(SIL)测试详解(精简版入门)
    自动驾驶仿真:软件在环(SIL)测试详解一、引言自动驾驶技术的快速发展对测试验证提出了更高要求。软件在环(Software-in-the-Loop,简称SIL)仿真测试作为自动驾驶系统验证的重要手段,通过将自动驾驶的控制软件与虚拟仿真平台结合,实现对自动驾驶系统的软件功能、稳定性和安全性的全面测......
  • 2024最新版漏洞挖掘教程,零基础入门到精通, 收藏这篇就够了_网络安全挖洞全流程保姆级
    经常有小伙伴问我。为什么自己总是挖不到漏洞呢?渗透到底是什么样的流程呢?所以全网最详细的渗透测试流程来了!!!全篇文章内容较长,请耐心观看!渗透测试渗透测试其实就是通过一些手段来找到网站,APP,网络服务,软件,服务器等网络设备和应用的漏洞,告诉管理员有哪些漏洞,怎么......
  • 网络安全领域的 16 个专业,零基础入门到精通,收藏这一篇就够了_数字取证
    ......
  • 零基础想学习 Web 安全,如何入门?
    想学习 Web安全,如何入门?一.开始前的思考1.我真的喜欢搞安全吗?2.我想通过安全赚钱钱?3.我不知道做什么就是随便?4.一辈子做安全吗这些不想清楚会对你以后的发展很不利,与其盲目的学习web安全,不如先做一个长远的计划。否则在我看来都是浪费时间。一.首先你得了解W......
  • Git最新最新详细教程、安装(从入门到精通!!!!企业级实战!!!工作必备!!!结合IDEA、Github、Gitee实
    可以不用看第4章Git客户端便捷操作,第5章GitLab的部署与使用!!!!初学者第1章Git概述Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能......
  • springboot森林生物调查系统-毕业设计源码301826
    springboot森林生物调查系统摘 要随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,森林生物调查系统的资讯信息通过网络进行信息管......