SpringBoot 快速入门

news/2024/11/14 15:06:16/文章来源:https://www.cnblogs.com/wztblogs/p/18369687

SpringBoot 快速入门

  1. 创建空工程

  2. 在空工程下创建一个 maven工程

  3. 将该maven工程变成springboot 工程,只需要在pom文件中指定parent为 springboot的基础包

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>
    ​   <groupId>com.ztone</groupId>   <artifactId>springboot-base-quick-01</artifactId>   <version>1.0-SNAPSHOT</version>
    ​   <parent>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-parent</artifactId>       <version>3.0.5</version>   </parent>
    ​
    </project>

    现在该工程就变成了 springboot 工程

  4. 导入 web 对应的启动器 依赖

    <dependencies>   <dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-web</artifactId>   </dependency>
    </dependencies>

    不用指定 版本号,因为在 parent中已经指定了这些启动器的版本号

  5. 创建项目的启动类

    在启动类上加注解 @SpringBootApplication

    在main 方法中调用 SpringApplication的 run方法,该方法会自动创建ioc容器以及启动tomcat服务器

    该方法的两个参数:该启动类的class、main方法的参数

    package com.ztone;
    ​
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    ​
    @SpringBootApplication
    public class Main {   public static void main(String[] args) {       SpringApplication.run(Main.class,args);   }
    }
  6. 正常创建Controller

 

 

问题:

1.为什么spring-boot-starter-web不用写版本号?

在父工程spring-boot-starter-parent 的 父工程 spring-boot-dependencies 中创建了许多能够用到的版本号

image-20240820111310888

 

2.启动器 Starter 是什么?

在上面导入了 web 启动器的 依赖,之前是导入 spring-webmvc、servlet、jackon等等。现在只需要导入一个启动器,web开发所需要的依赖都导入了。

所以 Starter是一组预定义的依赖项集合,旨在简化Spring程序的配置和构建过程

springboot提供了启动器,第三方也提供了一些启动器

 

3.@SpringBootApplication注解的作用

在这个注解上,还有三个注解

image-20240820112710769

  • @SpringBootConfiguration 注解,标注该类是一个配置类,因为在这个注解上有 @Configuration

  • @EnableAutoConfiguration,会自动加载配置文件

  • ComponentScan ,扫描包注解。扫描启动类所在的包下的所有注解

 

Springboot 统一配置管理

在Springboot 工程下,进行统一配置管理,设置各种参数都集中到一个固定位置和命名的配置文件,即 application.properties 或 application.yaml

存放位置应该在 springboot 工程的 src/main/resource目录下

在文件中可以使用 springboot 固定的key 如指定端口号和项目根路径等

也可以自定义key 在 java代码中 用 @Value 注解去读取

 

YAML 配置文件

由于所有配置都要在 一个配置文件中编写,所以需要保证key 不能重复,就需要有多层结构

通过application.properties 进行配置,每一层是通过 . 来连接

server.port=80
server.servlet.context-path=/ssm

这样写每一次相同结构的key都要全部写出来,有些繁琐

而yaml 格式是层次分明,相同的key作为头部。

server:port: 80servlet:   context-path: /ssm

除此之外,还可以表示 集合,用 - 来表示集合

hobby:- 学习- 吃饭- 敲代码

 

批量读取配置文件内容

读取 yaml 配置文件中的数据,有两种方式:

第一种是 在属性上用 @Value 注解,给属性赋值

这种方式出现的问题是只能读取单个值,不能批量读集合,而且必须将 key写全

@Data
@Component
public class Student {   @Value("${student.zhangsan.username}")   private String username;   @Value("${student.zhangsan.age}")   private int age;   private List<String> hobby;
}

 

第二种方式是在实体类上加 @ConfigurationProperties(prefix="xxx")

其中prefix 是 指定通用的前缀 比如:student.zhangsan

他要求 属性名要和 最后一个 key相等

@Data
@Component
@ConfigurationProperties(prefix = "student.zhangsan")
public class Student {      private String username;      private int age;      private List<String> hobby;
}

这种方式可以批量读取集合

 

多环境配置

在SpringBoot中可以配置不同的运行环境(开发、测试、生产),这些配置环境加载不同的配置文件。

yaml配置文件要求是 必须以 application开头,所以可以把不同环境的配置文件命名为 application-dev.yaml 或 application-test.yaml

最终在 application.yaml 总的配置文件中,引入这些分配置文件,使其生效

用的配置名是 spring.profiles.active= dev

spring:profiles:   active: dev

如果引入的配置文件中的 key 与 总配置文件中的key重复了,最终的值是引入的文件里的值

除了在配置文件中使其生效,还可以通过命令行的方式 -- spring.profiles.active= dev 指定环境配置

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/784370.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达梦数据库获取SQL真实的执行计划

一、set autotrace trace disql下执行set autotrace trace开启AUTOTRACE功能,执行SQL语句,并打印实际的执行计划。 SQL> set autotrace traceSQL> select a.employee_name, b.department_name from dmtest.t_emp a join dmtest.t_dept b on a.department_id = b.depart…

windows大全

1、快捷键 2、win+r msinfo32 系统信息 services.msc 服务 regedit 注册表编辑器 mstsc 远程桌面连接 gpedit.msc 本地组策略编辑器 msconfig 系统配置

MySQL主从同步如何保证数据一致性?

MySQL 主从同步是 MySQL 集群方案中的一种,也是实现难度最低的一种。 然而,现在的面试都不问 MySQL 主从同步原理了,而是开始问主从同步怎么保证数据一致性问题了。 所以,今天就给大家安排上了。 1.什么是数据一致性? 数据一致性是指在一个系统中,数据在不同的部分、不同…

一汽集团数据专家分享:实时数据技术在汽车行业的应用与实践经验

在当今快速变化的商业环境中,数据的实时性和准确性是企业制胜的关键。然而,数据孤岛、数据分散、处理时效差等难题却成为制约企业发展的瓶颈。本次分享将围绕实时数据技术在汽车行业的应用与实践经验分享展开【导读】在当今快速变化的商业环境中,数据的实时性和准确性是企业…

php5.6安装redis扩展

参考:https://www.cnblogs.com/q35455075/p/14110914.html1.下载 选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip 下载地址: http://windows.php.net/downloads/pecl/releases/redis/2.2.7/ http://windows.php.net/downloads/pecl/relea…

AP9195 7-24V高效率、高精度的升压型大功率 LED 照明灯与恒流驱动控制芯片方案

概述 AP9195 是一款高效率、高精度的升压型大功率LED灯恒流驱动控制芯片。 AP9195 内置高精度误差放大器,固 定关断时间控制电路,恒流驱动电路等, 特别适合大功率、多个高亮度 LED 灯串的 恒流驱动。 AP9195 通过调节外置的电流采样电 阻,能控制高亮度 LED 灯的驱动电流,使…

DC-6

靶机介绍靶机下载地址:https://download.vulnhub.com/dc/DC-6.zip 环境搭建下载之后,解压,使用vmware导入或者virtualbox导入都可以,但注意要保证与你的攻击机在同一网段下,vmware要使用最新版kali攻击机:192.168.98.136 靶机渗透 信息收集 扫描主机 arp-scan -l​​靶机i…

自动化测试是什么?为何选择 Apifox 作为自动化测试工具

什么是自动化测试? 自动化测试就是利用专门的软件工具来执行测试用例,并将实际结果与预期结果进行比对的过程。与手动测试相比,自动化测试能够大大提高测试效率,降低人为错误,增加测试覆盖率,同时还能节省大量时间和成本。举个“栗子”,如果你需要反复测试一个有上百个输…

真去送了外卖的程序员,来聊聊他眼中的《逆行人生》丨编码人声

「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。我们请来一位真的去体验了送外卖的程序员,请他聊聊他眼中的《逆行人生》。本期节目,我们会围绕这部电影的真实性和一…

redhat8 rhel8 启动grub损坏修复

环境:redhat8.4 RHEL8.4 服务器:华为G560 问题描述:调整了/etc/default/grub文件,重新生成/boot/grub2/grub.cfg导致机器启动失败,直接进入了rescue模式 解决方案: 启动到如下界面 选择c进入grub命令界面 可以使用ls命令去查看驱动器的情况 (hd0) 是第一个硬盘。 (hd0,ms…

Easyadmin的安装流程

应用环境: 1.phpStudy 8.1.1.3 2.WNMP:Windows10 + Nginx1.15.11 + MySql5.7 + PHP7.2.9nts 框架版本: 1.ThinkPHP6.0 2.layui2.9.x 3.Echarts5.51 流程步骤: 1.开启phpStudy 必要环境后,创建本地网站目录 2.将本地目录指向public后,填写好伪静态规则:location / {  …

图片相似度对比SSIM和PHash

选择最准确的图像对比算法取决于你的具体需求和应用场景。不同的算法在不同的场景下表现可能不同。以下是一些常见的图像对比算法及其适用场景: 1. 结构相似性 (Structural Similarity Index, SSIM)描述: SSIM 是一种用来衡量两张图像之间的相似度的指标,它考虑了亮度、对比度…