栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot系列笔记一——SpringBoot项目结构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot系列笔记一——SpringBoot项目结构

SpringBoot 简介

Spring Boot 是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了 Spring 众多框架中所需的大量且繁琐的配置文件,所以 Spring Boot 是一个服 务于框架的框架,服务范围是简化配置文件。所以从本质上来说,Spring Boot 其实就是 Spring 框架的另一种表现形式

特征

使用 Spring Boot 可以创建独立的 Spring 应用程序在Spring Boot中直接嵌入了Tomcat、Jetty、Undertow等Web容器,所以在使用SpringBoot 做 Web 开发时不需要部署 WAR 文件通过提供自己的启动器(Starter)依赖,简化项目构建配置尽量的自动配置 Spring 和第三方库提供了生产就绪特征,如:度量指标,运行状况检查和外部化配置绝对没有代码生成,也不需要 XML 配置文件 SpringBoot项目结构 继承

Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。
spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签

 
	org.springframework.boot 
	spring-boot-starter-parent 2.2.0.RELEASE 
	 
 
依赖

启动器依赖


 org.springframework.boot 
 spring-boot-starter-web
  
插件

spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。将所有 应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。当运行"mvn package"进行打包后,使用"java -jar"命令就可以直接运行

 
	 
		 
			org.springframework.boot 
			spring-boot-maven-plugin 
		
	  

启动类

Spring Boot 的启动类的作用是启动 Spring Boot 项目,是基于 Main 方法来运行的。 注意:启动类在启动时会做注解扫描(@Controller、@Service、@Repository…),扫描 位置为同包或者子包下的注解,所以启动类的位置应放于包的根下

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

Spring Boot 将所有的功能场景都抽取出来,做成一个个的 starter(启动器),只需要在项 目里面引入这些 starter 相关场景的所有依赖都会导入进来,要用什么功能就导入什么场景, 在 jar 包管理上非常方便,最终实现一站式开发

启动类与启动器的区别:启动类表示项目的启动入口,启动器表示jar包的坐标

配置文件

Spring Boot 提供一个名称为 application 的全局配置文件,支持两种格式 properteis 格式 与 YAML 格式

Properities

配置tomcat监听窗口
application.properties

server.port=8888
YAML

YAML 格式配置文件的扩展名可以是 yaml 或者 yml
格式要求:

大小写敏感使用缩进代表层级关系相同的部分出现一次
配置tomcat监听窗口

server:
	port: 8888
配置文件存放位置

当前项目根目录中当前项目根目录下的一个/config子目录中项目的resource即classpath根路径中项目的resource即classpath根路径下的/config目录中 不同格式的加载顺序

如 果 同 一 个 目 录 下 , 有 application.yml 也 有 application.properties , 默 认 先 读 取 application.properties。

如果同一个配置属性,在多个配置文件都配置了,默认使用第 1 个读取到的,后面读取 的不覆盖前面读取到的

不同位置的加载顺序
    当前项目根目录下的/config子目录中(最高优先级)当前项目根目录中(其次)项目的resource即classpath根路径下的config目录中(一般)项目的resource即classpath根路径中(最后)
配置文件中的占位符 占位符语法

${}

占位符作用

"${}"中可以获取框架提供的方法中的值如:random.int 等占位符可以获取配置文件中的键的值作为另一个键的值 生成随机数

{random.value} :类似 uuid 的随机数,没有"-"连接{random.int} : 随机取整型范围内的一个值 ${random.long} - 随机取长整型范围内的一个值{random.long(100,200)} : 随机生成长整型 100-200 范围内的一个值 $、{random.uuid} : 生成一个 uuid,有短杠连接{random.int(10)} : 随机生成一个 10 以内的数{random.int(100,200)} :随机生成一个 100-200 范围以内的数 bootstrap

Spring Boot 中有两种上下文对象,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从 额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一 个环境,它是任何 Spring 应用程序的外部属性的来源。bootstrap 里面的属性会优先加载, 它们默认也不能被本地相同配置覆盖

配置文件特征

bootstrap由父ApplicationContext加载,比application优先级更高bootstrap里面的属性不能被覆盖 应用场景

application配置文件主要用于SpringBoot的自动化配置
bootstrap:

使用Spring Cloud Config配置中心时,这时需要在bootstrap配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息一些固定的、不能被覆盖的属性一些加密/解密的场景

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711484.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号