SpringBoot学习初识

SpringBoot学习初稿

简介

SpringBoot是所有基于Spring开发的项目起点,SpringBoot的设计师为了让你尽可能快的跑起来Spring应用程序和尽可能减少你的配置文件。

SpringBoot思想是约定优于配置,又称为约定编程,这是一种软件设计范式。

特性

起步依赖

Spring有个缺点是项目的依赖管理很麻烦,在环境搭建时,需要分析要导入哪些库的坐标,和导入坐标有依赖关系的其他坐标,一旦选错,就会有不兼容的问题。比如搭一个SSM框架,假如需要导入50个依赖,那么每次使用SSM框架的时候都需要开发者一个一个去导入这50个依赖。

SpringBoot的 起步依赖 很好的解决了Spring的这个问题,就是将具备某些功能的坐标打包到一起,生成一个starter坐标,并提供一些默认的功能。上述例子中只需要开发者去依赖一个SSM的starter即可使用SSM框架提供的功能。

自动配置

还是从Spring的缺点说起,虽然Spring的组件代码是轻量级的,但是它的配置却是重量级的。SpringBoot的出现时为了使Spring的使用更简单,所以SpringBoot推出了自动配置。指的SpringBoot会自动将一些配置类的bean注册进ioc容器,我们可以在需要的地方使用@AutoWired或者@Resource等注解来使用它。自动的形式表现在我们只需要引我们想用的功能的包,相关的配置我们完全不用管,SpringBoot会自动去注入这些配置bean,我们直接使用这些bean即可。

综上就是,SpringBoot可以简单 快速 方便的搭建项目;对主流开发框架的无配置集成;极大提高了开发 部署的效率。

环境搭建

1 点击 create new project在弹出的页面上按下图顺序选择,第二步选择开发的jdk版本,第三步点击next时需要联网才能生成项目框架。
1 创建新的工程
2 联网后会弹出以下页面,添上项目信息,进行下一步。
创建项目
3 选择新建项目的依赖或者基本架构。本例是创建一个web项目,使用SSM框架。并选择一个springboot的版本,一般是选择最近的一个稳定版本,按默认的就好。然后再下一步。
创建项目
4 添上项目名称和项目的存放地址即可finish,完成项目创建。
创建项目
5 使用Spring Initializr方式构建的springboot项目会默认生成项目启动类,存放前端静态资源和页面的文件夹,编写项目配置文件夹以及项目单元测试的测试类。
项目结构

编写一个简单的demo

编写一个简单的demo
注意: 在启动项目之前需要将我们的启动类移动到我们com包下或者lagou包下,因为项目启动会去扫描启动类所在的包及子包,完成项目启动。

启动项目
启动项目
结果展示
结果展示

单元测试

1 需要我们在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器:

	<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
       </dependency>

注意: 如果使用Spring Initializr方式搭建的springboot项目,会自动引入该依赖,并在src.test.java下自动创建单元测试类。

示例:
@RunWith(SpringRunner.class) //测试启动器,并加载springboot测试注解
@SpringBootTest //标记该类为springboot的单元测试类,并加载项目的applicationContext上下文环境

单元测试示例
运行完成,测试通过
单元测试

热部署

介绍
在开发过程中,经常会对一些业务代码不断的修改测试,在修改后往往需要重启服务,而有的服务需要加载很久才能启动成功,这种重复性的操作极大的降低了程序的开发效率。为此,springboot提供了热部署的依赖启动器,用于进行项目热部署,无需手动重启项目。

实现操作

  1. 在pom.xml文件中添加热部署依赖启动器:
<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-devtools</artifactId>
       <version>2.4.2</version>
</dependency>

2.IDEA工具热部署的设置
选择IDEA工具界面【file】> 【setting】选项,打开compiler面板页面,勾选完成后点击【apply】 > 【ok】。
热部署操作
在项目任意页面位置使用组合快捷键“ctrl + shift + alt + / ”打开Maintenance选项框,选中并打开Registry页面,勾选“compiler.automake.allow.when.app.running”。用于指定IDEA工具在程序运行过程中自动编译,最后点击【close】完成设置。
热部署设置

全局配置文件

能够对一些默认配置进行修改,一般使用application.properties或者application.yaml的格式作为全局配置文件。我们可以在此中定义springboot的项目的相关属性,比如:系统属性 环境变量 命令参数 也可以是自定义配置文件名称和位置。

对于一些自定义的对象配置属性,springboot无法自动识别,所以不会有任何书写提示。所以我们可以在对象配置类上添加@ConfigurationProperties注解进行配置文件属性值注入,此注解需要添加配置处理依赖启动器:

  <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-configuration-processor</artifactId>
     <version>2.4.2</version>      
  </dependency>

注意: 配置好依赖后,需要重新运行项目或者重新build project,才会生效。

properties 形式的全局配置文件

自定义对象配置类示例:
@ConfigurationProperties(prefix = “person”) //将配置文件中以person开头的属性注入到该类对应属性中
全局配置文件
配置文件为配置类赋值:
全局配置文件

yaml形式的全局配置文件

介绍
YAML文件格式是springboot支持的一种JSON超集文件格式,相较于传统的properties配置文件,yaml以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。

  • YAML文件的扩展名有 .yml 和.yaml两种
  • application.yml文件使用“key:(空格)value” 格式配置属性,使用缩进控制层级关系。

针对上述例子中的Person配置类进行yaml配置文件赋值,如下:
yml全局配置文件

配置文件属性值注入

使用springboot全局配置文件设置属性时:

如果配置的是springboot已有的属性,例如服务端口server.port,那么springboot会自动扫描读取并覆盖默认值。

如果配置的是用户自定义的属性,例如上述自定义的Person实体类属性,还必须在程序中注入这些配置属性才能生效。

方式

  • @ConfigurationProperties
    该注解是springboot提供的,用于快速 方便的将配置文件中的自定义属性批量注入到某个bean对象的对应属性中。示例如上面的全局配置文件介绍的用法。注意:使用该注解的实体类必须要有Set方法,因为该注解实际是使用set方法注入

  • @Value
    该注解是Spring提供的,用于读取配置文件中的属性值并逐个注入到bean对象的对应属性中去。

@Component
public class Person{
@Value(${person.id})
private int id;
}

需要对每一个属性进行注入设置,该注解免去了属性的set方法,因为spring是通过反射的方式进行赋值的。值得注意的是该注解只适用于普通类型的属性注入,对于像Map 对象 集合类型不支持。

自定义配置

springboot 只能识别 application*.properties application*.yaml application*.yml这样格式的配置文件,如果我们要自定其他格式的配置文件,springboot是不能扫描并识别到的,这个时候我们可以有以下两种方式来自定义配置文件。

  • @PropertySource 注解加载配置文件
    @PropertySource(“classpath:test.properties”) //配置自定义配置文件的名称及位置
    示例:
    用该注解找到我们自定义的test.properties,并给我们的对象注入属性值。
    自定义配置
  • @Configuration
    注解用于表明当前类是一个自定义的配置类,并添加为Spring容器组件。示例:
    自定义配置类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值