SpringBoot学习笔记(一)-SpringBoot基础学习

Scroll Down

SpringBoot学习笔记(一)-SpringBoot基础学习

SpringBoot概念

Build Anything with Spring Boot?Spring Boot is the starting point for
building all Spring-based applications. Spring Boot is designed to get you up
and running as quickly as possible, with minimal upfront configuration of
Spring.

SpringBoot是所有基于Spring开发项目的起点,SpringBoot设计为了尽快的运行Spring应用程序并减少相应的配置文件.

SpringBoot的核心思想是约定优于配置,又称按约定编程,是一种软件设计范式

如果实体中有个名为User的类,数据库中对应的表就会默认命名为user。只有在偏离这一约定的时候,比如将该表命名为"user_admin"之类的,才需要进行配置

SpringBoot如何解决Spring的配置问题?

Spring配置问题:

Spring的配置较为复杂,无论是使用XML配置还是注解配置都需要从应用程序思维切换到配置思维,可能会导致思路中断等.

并且项目上的依赖管理也很复杂,在环境搭建时,一旦选错了依赖的版本,会导致一系列意料外的事情出现,导致浪费过多的时间

SpringBoot如何解决?

  • 自动配置- SpringBoot的自动配置会自动将一些配置类的bean注册进IOC容器,可以在需要使用的地方直接用@Autowired或者@Resource注解进行使用,我们不需要手工注入这些配置bean,就可以直接进行使用,SpringBoot对主流框架都进行了无配置集成,极大的提高了开发与部署的效率

  • 起步依赖- 起步依赖将具有某种功能的坐标打包在一起,提供一些默认的功能,避免人为的导致版本依赖冲突等问题

SpringBoot案例

实现一个Controller,并将"hello world"输出到浏览器中

使用spring initalizr构建初始化SpringBoot工程

Spring官网初始化:

image-20200601171130139

因为使用SpringBoot的官网总是会连接失败,这里我们使用阿里云的国内镜像地址:https://start.aliyun.com/

image-20200601171521280

点击next:

image-20200601171456945
image-20200601171902289

image-20200601171927714

点击finish,等待项目与相应的maven库下载完成,这时候一个基础的SpringBoot程序就下载好了

SpringBoot的目录结构

image-20200601172345914

这时候新增相应的Controller

@RestController
public class SpringBootController {
    @RequestMapping("/demo")
    public String demo(){
        return "hello world";
    }
}

运行:

image-20200601180306938

结果:

image-20200601180212470

SpringBoot中使用单元测试

在maven配置文件中添加测试依赖

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

注:使用spring initalizr会自动引入,无需手工重新引入spring-boot-starter-test

使用相应测试类:

@SpringBootTest//标记为SpringBoot单元测试类,自动加载项目的上下文环境
class DemoApplicationTests {

    @Autowired
    private SpringBootController springBootController;
    @Test
    void contextLoads() {
        System.out.println(springBootController.demo());
    }

}

最终结果:
image-20200601180752863

SpringBoot中使用热部署

添加支持热部署的启动器

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

在idea下进行热部署的支持配置

image-20200601181409762

选择Build下面的Compiler选项,在右侧勾选"Build project automatically"选项,将项目裴志伟自动编译,或者修改完代码后,手工使用快捷键ctrl+shift+F9

在项目界面使用组合快捷键ctrl+shift+alt+/打开Maintenance选项,并将compiler.automake.allow.when.app.running进行勾选