SpringBoot入门

SpringBoot入门

SpringBoot简介

​ Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。

Spring Boot的主要优点:

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

Hello SpringBoot!

创建SpringBoot项目

  • 方式一:官网创建
    • Spring Initializr:https://start.spring.io/
  • 方式二:IDEA集成Spring Initializr创建

项目结构分析

1、程序的主启动类

2、一个 application.properties 配置文件

3、一个 测试类

4、一个 pom.xml

<!-- pom.xml分析 -->
<!-- 父依赖 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.2</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
    <!-- web场景启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
		<!-- springboot单元测试 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
      	<!-- 打包插件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

编写Controller

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "Hello SpringBoot!";
    }
}

启动项目

  • 运行SpringBoot主启动类,浏览器访问http://localhost:8080

打包项目

  • 点击maven的package即可将项目打成jar包
  • 打包时会运行所有的测试用例,若要跳过测试,需要以下配置
<!--
    在工作中,很多情况下我们打包是不想执行测试用例的
    可能是测试用例不完事,或是测试用例会影响数据库数据
    跳过测试用例执
-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳过项目运行测试用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>

彩蛋:banner

  • 如果想更改SpringBoot启动时显示的图案,即banner,只需在项目的resources目录下创建一个banner.txt即可
  • 图案可以到以下这个网站生成:https://www.bootschool.net/ascii

Yaml语法学习

SpringBoot配置文件

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

  • application.properties
    • 语法结构 : key=value
  • application.yml
    • 语法结构: ​key:空格 value

**配置文件的作用 😗*修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好

yaml概述

​ YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。 在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言) 这种语言以数据做为中心,而不是以标记语言为重点! 以前的配置文件,大多数都是使用xml来配置;比如一个简单的端口配置,我们来对比下yaml和xml 传统xml配置:

传统xml配置

<server>
	<port>8081</port>
</server>

yaml配置

server:
	port: 8081

yaml基础语法

说明:语法要求严格!

​ 1、空格不能省略

​ 2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。

​ 3、属性和值的大小写都是十分敏感的。

双引号与单引号的区别:

  • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;

    • 比如 : name: “zhang \n san” 输出 : zhang 换行 san
  • ’ ’ 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出

    • 比如 : name: “zhang \n san” 输出 : zhang \n san

JSR303校验

Springboot中可以用==@validated==来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;

@Component //注册bean @ConfigurationProperties(prefix = "person") @Validated //数据校验
public class Person {
@Email(message="邮箱格式错误") //name必须是邮箱格式
    private String name;
}

运行结果 : default message [不是一个合法的电子邮件地址];

使用数据校验,可以保证数据的正确性; 下面列出一些常见的使用

@NotNull(message="名字不能为空")
private String userName; 
@Max(value=120,message="年龄最大不能查过120") 
private int age; 
@Email(message="邮箱格式错误")
private String email; 

空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空 格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.
  
Booelan检查
@AssertTrue 验证 Boolean 对象是否为 true 
@AssertFalse 验证 Boolean 对象是否为 false
  
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) string is between min and max included.
  
日期检查
@Past
@Future
@Pattern
验证 Date 和 Calendar 对象是否在当前时间之前 验证 Date 和 Calendar 对象是否在当前时间之后 验证 String 对象是否符合正则表达式的规则

多环境切换

​ profile是Spring对不同何静提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境。

​ 我们在主配置文件编写的时候,文件名可以是application-{profile}.properties/yaml,用来指定多个环境版本。

​ 但是Springboot并不会直接启动这些配置文件,默认使用application.properties主配置文件

#比如在配置文件中指定使用dev环境
#我们启动SpringBoot,就可以看到已经切换到dev下的配置了
spring.profiles.active=dev

配置文件加载位置

SpringBoot启动会扫描以下位置的application.properties或者application.yaml文件作为SpringBoot的默认配置文件

优先级1:项目路径下的config文件夹配置文件 
优先级2:项目路径下配置文件 
优先级3:资源路径下的config文件夹配置文件 
优先级4:资源路径下配置文件

优先级由高到低,高优先级的配置会覆盖低优先级的配置

SpringBoot会从这四个位置全部加载配置文件,互补配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它提供了一种简化的方法来配置和部署应用程序,使开发人员能够更快地开发和运行应用程序。 Spring Boot Actuator是Spring Boot的一个组件,它可以帮助我们监控和管理Spring Boot应用程序,包括健康检查、审计、统计和HTTP追踪等功能。要使用Spring Boot Actuator,只需引入相应的起步依赖,并在应用程序的入口点类上添加@SpringBootApplication注解即可。在该类中,使用@SpringBootApplication注解相当于同时添加了@Configuration、@EnableAutoConfiguration和@ComponentScan注解,它标识了当前应用程序是一个Spring Boot应用程序。要启动Spring Boot应用程序,只需在主启动类中编写main函数,通过调用SpringApplication.run(Application.class, args)方法来启动应用程序。在开发过程中,<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SpringBoot入门](https://blog.csdn.net/weixin_45905210/article/details/121712027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [spring boot 入门](https://blog.csdn.net/zhshx19900318/article/details/129476812)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值