SpringBoot入门笔记

本文是看黑马老师讲课视频学习笔记整理

目录

入门案例

基于IDEA联网

基于Springboot官网创建

基于阿里云创建项目

手工创建

隐藏文件

入门案例解析:

parent​编辑

starter

引导类

内嵌tomcat


入门案例

基于IDEA联网

java 复制代码
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public String getById()
    {
        System.out.println("springboot is running");
        return "springboot is running";
    }


}

下面来看一个错误示例(其实就是第一次创搞错了):

这种结构导致接口路径未正确映射。要确保接口类位于控制器类和启动类(@SpringBootApplication注解)的同包或子包下,以确保自动解析

这样才正确

然后运行Days3ApplicationTests

SpringBoot程序要基于jdk8进行使用


Spring程序与SpringBoot程序对比

基于 idea 开发 SpringBoot 程序需要确保联网且能够加载到程序框架结构


基于Springboot官网创建

https://start.spring.io/

点击CTRL+回车选项下载

java 复制代码
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public String getById()
    {
        System.out.println("springboot is running");
        return "springboot is running...2";
    }


}

基于阿里云创建项目

https://start.aliyun.com

同理

java 复制代码
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public String getById()
    {
        System.out.println("springboot is running3");
        return "springboot is running...3";
    }


}

手工创建

Days_05是普通maven工程

这时候把Days3的pom.xml文件中的<parent>和<dependency>复制过去

java 复制代码
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }



}

隐藏文件

不想看到的文件点+号输入文件格式即可


入门案例解析:

parent


starter

SpringBoot 中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到 减少依赖配置 的目的

比如原来写了7/8个依赖,现在写一个就行。

实际开发:
1.使用任意坐标时,仅书写 GAV 中的 G 和 A , V 由 SpringBoot 提供,除非 SpringBoot 未提供对应版本 V
2. 如发生坐标错误,再指定 Version (要小心版本冲突)


引导类

java 复制代码
@SpringBootApplication
public class Days3Application {

    public static void main(String[] args) {

    ConfigurableApplicationContext context= SpringApplication.run(Days3Application.class, args);
        BookController bean=context.getBean(BookController.class);
        System.out.println("bean======>"+bean);
        User user=context.getBean(User.class);
        System.out.println(user);
    }

}
java 复制代码
import org.springframework.stereotype.Component;

@Component
public class User {
}

其实SpringApplication.run(Days3Application.class, args);是启动了一个Spring容器,我们定义的bean可以加载进去.

  • SpringBoot 的引导类是 Boot 工程的执行入口,运行 main 方法就可以启动项目
  • SpringBoot 工程运行后初始化 Spring 容器,扫描引导类所在包加载 bean

内嵌tomcat


使用 maven 依赖管理变更起步依赖项

XML 复制代码
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--web起步依赖环境中,排除Tomcat起步依赖-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加Jetty起步依赖,版本由SpringBoot的starter控制-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
</dependencies>

内置服务器

  • tomcat( 默认) apache 出品,粉丝多, 应用面广 ,负载了若干较重的组件
  • undertow undertow ,负载性能 勉强 跑赢 tomcat
    • jetty 更轻量级 ,负载性能远不及 tomcat
    1. 内嵌 Tomcat 服务器是 SpringBoot 辅助功能之一
      2. 内嵌 Tomcat 工作原理是将 Tomcat 服务器作为对象运行,并
      将该对象交给 Spring 容器管理
      3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务


相关推荐
洛白白19 分钟前
“职场心态与心穷
经验分享·学习·生活·学习方法
_dindong1 小时前
笔试强训:Week-4
数据结构·c++·笔记·学习·算法·哈希算法·散列表
DKPT2 小时前
如何设置JVM参数避开直接内存溢出的坑?
java·开发语言·jvm·笔记·学习
一 乐2 小时前
智慧党建|党务学习|基于SprinBoot+vue的智慧党建学习平台(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·学习
海边夕阳20062 小时前
MVCC核心原理解密:从隐藏字段到版本链的完整解析
经验分享·学习·数据库架构·mvcc
woodykissme3 小时前
日内瓦传动装置?不就是我们叫的间歇结构吗?
学习·机械
YJlio3 小时前
PsSuspend(7.23):无损挂起与恢复指定进程——精准“冻住”故障现场
笔记·学习·安全
小狗爱吃黄桃罐头5 小时前
正点原子【第四期】Linux之驱动开发学习笔记-10.1 Linux 内核定时器实验
linux·驱动开发·学习
im_AMBER5 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
BreezeJuvenile6 小时前
外设模块学习(17)——5V继电器模块(STM32)
stm32·单片机·嵌入式硬件·学习·5v继电器模块