Spring Boot入门笔记(上)

简介: Spring Boot入门笔记

一.Spring Boot简介


Spring Boot 的开发团队叫做Pivotal,Spring Boot 可以简化开发过程,抛弃配置八股文,他的目标就是为了提高开发效率。


spring boot核心特点:

第一个特点就是自动配置以及默认配置,这说的是什么意思呢?以我们一个web项目为例,其实它对外是要暴露端口的,那向这种配置,每一个web项目都要有,那我们SpringBoot就认为,既然每个web项目都要有,我就给你一个默认的配置,这样的话呢,你如果重新配置了的话,就以你的为标准,如果你不去配置的话,就以默认的为效。同样,向Redis和MySQL这些组件会有一系列的众多的一些默认的配置,其实这些默认的配置对与大多数的项目而言他们不一定会去改动。


第二个特点就是起步依赖:starter一站式 。这个起步依赖,在springboot 里面叫做starter,starter一站式服务就可以把你整个所需要用的依赖都引入进来。就比如说,假设我们想引入一个安全框架,那么,你只要引入一个starter,它就会把它所需要的相关的依赖都引进来,相当于对你来说,你不需要关注它需要哪些东西,你只需要关注你想引入它,那么引入一个依赖就够了。所以,这也大大减轻了程序员的开发负担.


第三个特点就是他会创建一个独立的Spring应用程序 。这个说的是什么意思呢,这个是说,我们之前我们需要用Tomcat作为一个容器,把我们的项目打成一个war包,然后把他放到tomcat里面去运行。现在呢,springboot内部就已经嵌入了tomcat,他就不需要额外的去做什么环境配置什么的,你只需要把它当成一个java程序运行,他就能启动起来。所以,在开发的时候,尤其是在部署运行的时候,也给我们带来了很多的便利。


第四个特点就是监控能力强,这个监控能力,如果你需要的话,就可以进行配置,配置好之后,对于内部的很多情况,你都能有所掌控。


最后一个特点就是较少需要XML配置,这种配置其实相对于我们的springboot配置文件而言啊,其实写起来还是比较繁琐的,有很多内容都是样板式的,不需要写。用springboot就可以比较少的去使用xml的配置。当然,少并不代表完全没有,在有些时候我们也是需要它的。


SpringBoot前世今生:

其实springboot诞生的基础和根基就是springframework ,springframework的核心就是IOC和APO。关于这块的内容,前面我的文章都有详细讲过。但是后来我么用这个核心内容去开发一些web项目,组件发现它存在一些繁琐的情况。所以,我们SpringBoot的核心目标就是精简高效,他是建立在我们spring的基础上去开发的,而不是另起炉灶,从零开始的。在后面,我还要学习和微服务相关的东西Spring Cloud,而且Spring Cloud 有一个特点就是集百家之长,他会把很多有用的一些项目和框架集合到一起来形成Spring Cloud。所以对于SpringBoot而言,他的基础是spring的核心,而它进一步的发展就是SpringCloud。


SpringBoot版本介绍:

我们打开SpringBoot的官网来看看,那里会把springboot当前的版本给说明出来,不仅如此,里面还有一些关于springboot的教学和演示。这里只要介绍一下他的版本,这里会有一些符号,比如CURRENT 、GA 、SNAPSHOT 。这些又是什么意思呢?我们究竟如何根据这些标记去选择适合我们的版本呢?当然,springboot的更新版本很快,当你再去打开这个官网的时候,可能他的版本又有了新的迭代,这是很正常的。不过,你们可能会有追新的思想,那是不是最新的就是最好的呢?这里要明确,不是最新最好,因为虽然springboot的版本提高了,但是他需要很多组件去配套的,而这些配套的组件是需要一个适配的过程的,并且组件的新功能我们并不一定会用到。

如果哪个版本是CURRENT版本,它代表是最新的GA版本,那什么是GA呢?GA的意思就是发布版本,他是面向大众的可用的稳定版本。这种版本的特点就是功能完整稳定,一旦发布之后,这个版本就永远不会更改。SNAPSHOT的英文意思是快照的意思,正是因为他叫SNAPSHOT,所以他的内容是会随时被修改的。


二.第一个Spring Boot 项目演示


(1) 新建SpringBoot项目


有两种springboot项目的方法:

第一种是通过spring官网的方式来创建springboot项目。


056af14c2a1645238a211b41831f20e4.png


下面来学习第二种创建项目的方式:

Idea集成的Spring Initializr。打开Idea之后,新建项目,然后在左侧选择Spring Initializr,其他的就不用多解释了。next后选择版本和依赖,最后finish就行了。


a705db69d0db4b599c9c4791154ffd5b.png

3dd5039d742a4a658222c1955004be46.png


生成好项目后,展开项目的结构。


c7937ed65a494715a9cfdc9b687ae86f.png


(2) 完成第一个接口的开发


说到接口,我们快速复习一下web项目的三层结构。通常是分为Controller层,Service层和Dao层。Controller层主要的职责就是对外去提供接口而Service层主要的职责是业务逻辑相关的。而dao层通常是和数据库相关的。我们的项目也不例外,会分为这样的三层。


我们首先在com.haiexijun.springbootlearn下面创建一个包controller。然后去创建一个类。这个类的名称我叫它ParaController。然后要在类上加一个注解@RestController,@RestController的作用就是我们的返回是一个json格式的,而不是一个页面。然后编写如下代码:


package com.haiexijun.springbootlearn.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ParaController {
    @GetMapping("/first")
    public String firstRequest(){
        return "hello springboot,我的第一个接口";
    }
}


我们点击运行项目。浏览器访问localhost:8080/first ,结果如下:


57c421faa9254f289043df208b494760.png


(3) 多种配置URL的方式


上面我们写的那个接口其实是写死的,他没有办法对参数进行一个接收和处理,这个和实际的情景也是不一样的。所以我要学习一下在springboot中,如果要对参数进行接收和处理的话要怎么做。


我们在上面的controller类中添加一个requestPara方法,把请求的参数给获取到,方法内用一个@RequestParam注解来表明传入的参数,并且可以对参数操作。


    @GetMapping("para")
    public String requestPara(@RequestParam Integer num){
        return "我收到了参数:"+ num;
    }


浏览器运行如下:


c0fbfae554154291ad6e263290d802e8.png


上面演示了GET请求接收请求传过来的参数,下面编写一个方法来演示接收POST请求传过来的参数。post请求接收参数,参数用@RequestBody注解标注,我们这里创建一个类类接受传过来的参数。我们新创建一个包entity,里面放实体类。我们在里面创建一个Student学生类,里面有id和name两个属性。


package com.haiexijun.springbootlearn.entity;
public class Student {
    private Integer id;
    private String name;
    public Student(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}


    @PostMapping("/post")
    public String postRequest(@RequestBody Student student){
        return "我收到了post参数:"+ student;
    }


我们打开postman,来测试一下接口:


66fc51dd17004e928a116e6fa3927c17.png

相关文章
|
2月前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
53 0
|
1月前
|
前端开发 Java 数据库连接
Spring系列文章1:Spring入门程序
Spring系列文章1:Spring入门程序
|
2天前
|
安全 Java 数据库连接
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通
|
11天前
|
缓存 监控 Java
【Spring系列笔记】AOP
面向切面编程就是面向特定方法编程。通过将横切关注点(cross-cutting concerns)从主要业务逻辑中分离出来,提供一种更好的代码模块化和可维护性。 横切关注点指的是在应用程序中横跨多个模块或层的功能,例如日志记录、事务管理、安全性、缓存、异常处理等。
24 0
|
11天前
|
存储 缓存 Java
【Spring系列笔记】依赖注入,循环依赖以及三级缓存
依赖注入: 是指通过外部配置,将依赖关系注入到对象中。依赖注入有四种主要方式:构造器注入、setter方法注入、接口注入以及注解注入。其中注解注入在开发中最为常见,因为其使用便捷以及可维护性强;构造器注入为官方推荐,可注入不可变对象以及解决循环依赖问题。本文基于依赖注入方式引出循环依赖以及三层缓存的底层原理,以及代码的实现方式。
22 0
|
13天前
|
前端开发 Java 数据格式
【Spring系列笔记】定义Bean的方式
在Spring Boot应用程序中,定义Bean是非常常见的操作,它是构建应用程序的基础。Spring Boot提供了多种方式来定义Bean,每种方式都有其适用的场景和优势。
31 2
|
13天前
|
Java Spring 容器
【Spring系列笔记】IOC与DI
IoC 和 DI 是面向对象编程中的两个相关概念,它们主要用于解决程序中的依赖管理和解耦问题。 控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入和依赖查找。
30 2
|
16天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
16天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
22天前
|
安全 Java 应用服务中间件
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置
29 0
江帅帅:Spring Boot 底层级探索系列 03 - 简单配置