首页 > 其他分享 >2、SpringBoot2之入门案例

2、SpringBoot2之入门案例

时间:2023-12-17 22:24:41浏览次数:32  
标签:入门 spring boot 案例 SpringBoot2 starter 注解 2.1 Starter

2.1、创建Maven工程

2.1.1、创建空项目

image

image

2.1.2、设置项目名称和路径

image

2.1.3、设置项目sdk

image

2.1.4、项目初始状态

注意:需要关闭项目再重新打开,才能看到SpringBoot-Part文件夹

image

2.1.5、配置maven

image

2.1.6、创建module

右击SpringBoot-Part文件夹,创建新module

image

选择maven

image

配置module名称和路径

image

image

module初始状态

image

3、引入依赖

3.1、添加父工程

image

    <!--
        Spring Boot提供了一个名为spring-boot-starter-parent的工程;
        该工程对各种常用依赖的版本进行了管理;
        只需要以该工程为父工程,就不用再操心依赖的版本问题了;
        以后需要用到什么依赖,直接引入坐标(不需要添加版本)即可。
    -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version>
    </parent>

3.2、添加web启动器

image

    <dependencies>
        <!--
            为了让Spring Boot完成各种自动配置,必须引入Spring Boot提供的自动配置依赖,称为启动器;
            因为是web项目,所以这里引入web启动器。
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

4、创建启动类

image

package online.liaojy;

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

/**
 * @author liaojy
 * @date 2023/12/10 - 21:01
 */
// @SpringBootApplication 注解标识的类,为Spring Boot应用程序的启动类
@SpringBootApplication
public class MainApplication {

    public static void main(String[] args) {
        /*
        * 该方法是启动 Spring Boot 应用程序的关键步骤,
        * 它会创建应用程序上下文、创建ioc容器、自动配置及启动应用程序(web项目会启动内置的Tomcat),并处理命令行参数。
        * */
        SpringApplication.run(MainApplication.class,args);
    }

}

5、创建控制器

image

在SpringBoot启动类所在的包以及子包下,IOC和DI的注解会被自动扫描并生效,约定俗成、无需额外的配置指定。

package online.liaojy.controller;

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

/**
 * @author liaojy
 * @date 2023/12/10 - 21:22
 */
@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(){
        return "hello,springboot2!";
    }

}

6、测试效果

image

启动springboot工程
注意:通过控制台的日志可知,默认使用了8080端口,内置了Tomcat9,上下文没有内容(也即是/)

image

访问对应的控制器方法,成功返回的正确响应内容。

7、案例总结

7.1、父工程

  • 每个 springboot 工程都有一个父工程 spring-boot-starter-parent ;

  • spring-boot-starter-parent 的父工程是 spring-boot-dependencies

  • spring-boot-dependencies 工程是版本仲裁中心,把所有常见的jar的依赖版本都声明好了,而且不存在版本冲突,
    所以 springboot 工程中的依赖不需要写版本。

image

image

7.2、starter启动器

  • 虽然 Maven 有依赖传递的功能,但是只能根据 jar 包之间的引用关系来关联依赖,不能根据开发场景来关联相关依赖,

  • 因此 Spring Boot 提供了一种叫做 Starter 的概念,用于关联和管理具体业务场景的相关依赖和配置;

  • Starter 包含了一组预定义的依赖项集合,并提供了一致的依赖项版本管理,确保依赖项之间的兼容性和稳定性;

  • Starter 遵循“约定大于配置”的原则,通过默认的设置来自动配置所需的组件和功能,让开发者更专注于业务逻辑而不是繁琐的配置细节;

  • 除了 Spring Boot 会提供一系列预定义的 Starter 之外,第三方(包括我们自己)也可以自定义 Starter ;

  • 官方提供的 Starter 的命名格式:spring-boot-starter-* ,第三方提供的 Starter 的命名格式:*-spring-boot-starter 。

image

SpringBoot 官方提供的 Starter 的文档地址:
https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/using.html#using.build-systems.starters

7.3、@SpringBootApplication注解

  • 添加在启动类上的 @SpringBootApplication 注解,实际上是一个组合注解,其作用由具体的子注解来实现;

  • @SpringBootApplication 注解的关键子注解包括:@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration ;

  • @SpringBootConfiguration 子注解本身也是一个组合注解,它包含了 @Configuration 注解,作用是将被标识的类声明为配置类;

  • @EnableAutoConfiguration 子注解的作用是自动加载其他配置类,并会根据依赖项和类路径,自动配置各种常见的Spring配置和功能;

  • @ComponentScan 子注解的作用是扫描所在类的包及其子包中的组件,并加载进Ioc容器中,使它们可被自动注入和使用。

标签:入门,spring,boot,案例,SpringBoot2,starter,注解,2.1,Starter
From: https://www.cnblogs.com/Javaer1995/p/17893029.html

相关文章

  • 云原生基础入门概念知识学习
    云原生的概念当谈及现代软件开发和IT基础架构时,云原生成为了一个备受关注的话题。它代表了一种软件架构和开发方法,旨在充分利用云计算环境的优势,以提高应用程序的可靠性、可扩展性和灵活性。在本文中,我们将深入探讨云原生的基本概念、核心技术以及为何它成为现代应用开发的首选。......
  • HydroOJ 从入门到入土(7)Hydro自带数据生成器使用说明(>=4.10.1)
    Hydro更新了一个新功能,可以直接用自带的数据生成器,在线生成数据,简单记录一下使用方法目录1.文件准备2.使用步骤3.注意事项4.文件模版1.文件准备gen.py(数据生成器,后附模版)std.cpp(标准程序,后附模版)文件名随意,其他的类型应该也行,不过没试.2.使用步......
  • 【python入门之OS模块介绍】---OS模块介绍
    title:【python入门之OS模块介绍】---OS模块介绍date:2023-12-1615:54:06updated:2023-12-1616:20:00description:【python入门之OS模块介绍】---OS模块介绍cover:https://home.cnblogs.com/u/dream-ze/【一】OS模块的介绍os模块是Python编程语言中......
  • ctfshow:misc入门+buuctf:misc
    misc34. 根据题干,得知宽度要大于900,又看wp限制为1200,我就倒着试,试到了1123就可以得出flag了 misc35. 同理上面,改宽度就好misc36. 一样的misc37. 点开是动态的,但其实仔细看可以看见部分flag的,就放进gif里面,一帧一帧看,得出之后按顺序拼凑出来就可以了misc38. ......
  • cuda编程的简单案例
    一个简单的案例:header.hvoidaddKernel(constint*a,constint*b,int*c,intsize); test.cu#include"cuda_runtime.h"#include"device_launch_parameters.h"#include"header.h"__global__voidadd(constint*a,constint*......
  • QT 入门之 搭建环境 2023年 踩坑记
    QT5.13.1-安装MSVC2017-Windows_msvc2017单独安装-CSDN博客不懂的可以参考以上文章 安装vs2017/2015toolkit是为了编译器(有些公司项目用vs2015写的)安装win10sdk是为了调试器 记得安装完win10sdk后切换到QT选项中的编译器autodetected 后重启一下q......
  • 【转载】Springboot2.x 事务
    参考https://blog.csdn.net/MinggeQingchun/article/details/119579941https://www.cnblogs.com/myitnews/p/12364455.htmlhttps://blog.csdn.net/dndndnnffj/article/details/109092116本文代码下载环境环境版本操作windows10vscode1.84.2SpringBo......
  • Kali Linux:从入门到掌握局域网攻击 (nmap)
    kaliLinux中使用nmap。使用nmap的之一步是登录KaliLinux,如果需要,就启动一个图形会话(本系列的之一篇文章安装了KaliLinux的Enlightenment桌面环境)。在烂毕安装过程中,安装程序将提示用户输入用来登录的“root”用户和密码。一旦登录到KaliLinux机器,使用慧历备命令s......
  • Altas&Ranger快速入门
    Altas&Ranger快速入门一、元数据企业内部远行多种类型的数据库,有关系型数据库、非关系型数据库、图数据库、时序数据库等,常见有mysql、redis、Mongodb、oracle、prometheus等,数据库是用来管理和存储数据的,例如:oracle数据库:schema是一组数据库对象的集合、table是存储数据库的实......
  • Hadoop快速入门
    Hadoop快速入门一、大数据思维分而治之所谓“分而治之”,就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个分别找出各部分的解,再把各部分的解组成整个问题的解。传统的计算都是基于内存去完成的,但是内存是有限的,数据量太大,导致无法在较短......