java中怎么把生成文件到项目根目录_[SpringBoot2.X] 02- 项目结构介绍

v2-48d0a47d4489ed5d5ea8249ed4e051dd_1440w.gif?source=172ae18b

POM文件

继承

Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。

spring-boot-starter-parent 是一个特殊的 starter,

它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签。

也就是继承的是springboot默认的启动器

v2-ed3bd4e21eff2d01f78d4f4ccdbca027_b.jpg

依赖

启动器依赖

v2-1fcdb664a8f372c95b23bb2183f6739c_b.jpg

插件

spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。

将所有应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。

当运行"mvn package"进行打包后,使用"java -jar"命令就可以直接运行。


启动类

Spring Boot 的启动类的作用是启动 Spring Boot 项目

过去的方式是放在容器中启动,而spring是内置了容器所以是启动springboot

是基于 Main 方法来运行的。

注意:

启动类在启动时会做注解扫描(@Controller、@Service、@Repository......),

扫描位置为同包或者子包下的注解,所以启动类的位置应放于包的根下

SpringbootdeomApplication

v2-0c57580c150814d85d5b93476f920dab_b.jpg
springboot启动类

启动类与启动器区别:

启动类

表示项目的启动入口

启动器

表示jar包的坐标


启动器

Spring Boot 将所有的功能场景都抽取出来,做成一个个的 starter(启动器),

只需要在项目里面引入这些 starter 相关场景的所有依赖都会导入进来,

要用什么功能就导入什么场景, 在 jar 包管理上非常方便,最终实现一站式开发。

Spring Boot提供了多达44个启动器,未来仍会增加。详见下方链接

所谓的启动器就是负责支持某个模块的jar包集合,比如说持久化操作的时候导入的jar包依赖有好几个,但是springboot中就归纳为一个启动器,加载启动器就是添加了相关模块操作时会使用的jar包

比较核心的有:

spring-boot-starter →不用额外导包因为其他启动器就包含了这个

这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。

spring-boot-starter-actuator

帮助监控和管理应用。

spring-boot-starter-web

支持全栈式Web开发,包括Tomcat和spring webmvc.

启动器命名规则:

spring-boot-starter-xxx

Balmy:[SpringBoot] 03- SpringBoot2.X 启动器介绍​zhuanlan.zhihu.com
v2-48d0a47d4489ed5d5ea8249ed4e051dd_180x120.jpg

配置文件

Spring Boot 提供一个名称为 application 的全局配置文件

支持两种格式

  1. properteis
  2. YAML

properteis 格式

官网配置下载以及脚手架搭建的项目就会自动生成,生成位置如下图

v2-a4f47df2a57c79d0581d2062de172899_b.jpg

v2-6b3b0e26248a09abaa3a063e4b434a6c_b.jpg

YAML 格式

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

基本格式要求

 大小写敏感

 使用缩进代表层级关系

 相同的部分只出现一次

v2-16ad63e01624947506910cb4cade7ec5_b.jpg

相同部分只能出现一次 :错误写法

v2-e40fd143aa07bf4dd48cbe972e6d0ef6_b.jpg

正确写法

v2-ff4305e0063fbc1d9431ed6e86ab6a8f_b.jpg

配置文件存放位置

 当前项目根目录中

 当前项目根目录下的一个/config 子目录中

 项目的 resources 即 classpath 根路径中

 项目的 resources 即 classpath 根路径下的/config 目录中

配置文件加载顺序

不同格式的加载顺序

如 果 同 一 个 目 录 下 , 有 application.yml 也 有 application.properties

默 认 先 读 取 application.properties。

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

后面读取 的不覆盖前面读取到的

不同位置的加载顺序

当前项目根目录下的一个/config 子目录中(最高)

config/application.properties

config/application.yml

当前项目根目录中(其次)

application.properties

application.yml

项目的 resources 即 classpath 根路径下的/config 目录中(一般) resources/config/application.properties

resources/config/application.yml

项目的 resources 即 classpath 根路径中(最后)

resources/application.properties

resources/application.yml

配置文件中的占位符

占位符语法

语法:${}

占位符作用

"${}"中可以获取框架提供的方法中的值如:http://random.int 等。

♥占位符可以获取配置文件中的键的值赋给另一个键作为值。

v2-f09ca9da3a4a1845821f0ae9bb79b677_b.jpg

生成随机数

v2-e7d0493268eb1403b7e90ea212e6947c_b.jpg

${random.value} - 类似 uuid 的随机数,没有"-"连接

${http://random.int} - 随机取整型范围内的一个值

${random.long} - 随机取长整型范围内的一个值

${random.long(100,200)} - 随机生成长整型 100-200 范围内的一个值

${random.uuid} - 生成一个 uuid,有短杠连接

${http://random.int(10)} - 随机生成一个 10 以内的数

${http://random.int(100,200)} - 随机生成一个 100-200 范围以内的数


bootstrap 配置文件

bootstrap 配置文件介绍

Spring Boot 中有两种上下文对象,

一种是 bootstrap,

另外一种是 application, 对应applicationContext

bootstrap 是应用程序的父上下文

即bootstrap是application的父级对象

也就是说 bootstrap 加载优先于 applicaton。

bootstrap

  • 主要用于从额外的资源来加载配置信息
  • 还可以在本地外部配置文件中解密属性。

这两个上下文共用一个环境,

♥它是任何 Spring 应用程序的外部属性的来源。

用法 以后在做微服务的时候

微服务的分布式配置中心 :把所有的配置文件拿出来放到远程仓库中做一个集中式的管理

最终需要依靠bootstrap来引入实现

bootstrap 里面的属性会优先加载, 它们默认也不能被本地相同配置覆盖。

bootstrap 配置文件特征

 boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载。

 boostrap 里面的属性不能被覆盖。

bootstrap 与 application 的应用场景

application 配置文件主要用于 Spring Boot 项目的自动化配置。

bootstrap 配置文件有以下几个应用场景。

 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。

 一些固定的不能被覆盖的属性。

 一些加密/解密的场景。

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

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

相关文章

大咖云集、精彩议题、独家内容,2019 AI ProCon震撼来袭!(日程出炉)

2019年9月5-7日,面向AI技术人的年度盛会—— 2019 AI开发者大会 AI ProCon,火热来袭! 继2018 年由CSDN成功举办AI 开发者大会一年之后,全球AI市场正发生着巨大的变化。顶尖科技企业和创新力量不断地进行着技术的更迭和应用的推进。…

机器学习的未来——深度特征融合

摘要: 深度特征融合是一项能够克服机器学习不足,为机器学习打开通往未来大门的新技术。新技术要不要了解一下?即使是最敏锐的技术布道师也无法预测大数据对数字革命的影响。因为他们最初的关注点都聚焦在了扩大基础设施以构建现有服务上。在提…

原码,反码,补码的关系和大小端字节序存储的关系

在看如下代码之前,要知道原码,反码,补码之间的关系 首先要知道第一位是符号位,0代表是正数,1代码是负数 正数的原码,反码,补码相同 负数的反码是符号位不变,其他位按位取反 负数的补…

与机器学习算法有关的数据结构

摘要: 在机器学习中需要运用到许多数据结构,掌握它们是非常重要的。希望本文能有所帮助拥有机器学习技能是不够的。你还需要良好的数据结构的工作知识。学习更多,并解决一些问题。因此,你已经决定不再使用固定的算法并开始编写自己…

resnet结构_经典卷积网络(二)-ResNet

一、ResNet(总结自csdn文章)随着网络的加深,出现了训练集准确率下降的现象,确定这不是由于Overfit过拟合造成的。作者针对这个问题提出了一种全新的网络,叫深度残差网络,它允许网络尽可能的加深&#xff0c…

物联网避坑 3 大指南!

戳蓝字“CSDN云计算”关注我们哦!整理 | 胡巍巍参考 | 中信出版社《物联网时代》如果你正是物联网从业者,你如何避免自己的投入,不会成为一种痛苦的学习经历,相反成为一个令人瞩目的成功故事呢?最好的方式之一&#xf…

深度学习工作机制通俗介绍

摘要: 本文是深度学习基础性介绍,以降维的角度分析卷积神经网络模型,并着重说明了目前人工智能存在的不科学性。在本文之前,写过一些关于人工智能的科普性文章,比如人工智能为什么能起作用、模型是什么以及如何去创建模…

结合Apache Kafka生态系统,谈谈2018年机器学习5大趋势

摘要: 让我们来研究下Uber和Netflix上的KSQL,ONNX,AutoML和机器学习平台,看看它们之间是如何相互关联的。在2018慕尼黑OOP会议上,我展示了使用Apache Kafka生态系统和深度学习框架(如TensorFlow&#xff0c…

设计一段代码,判断在内存中是小端存储还是大端存储

大端存储:数据中的低位保存在内存中的高地址中,数据中的高位保存在内存中的低地址中。 小端存储:数据中的高位保存在内存中的高地址中,数据中的低位保存在内存中的低地址中。 假设int a1; 则a在存储中的存储是 00 00 00 01&#…

51单片机雾化片自动扫频程序_单片机简介

单片机简介数字电路简介在一个控制系统中, 单片机是电路的一部分, 单片机中的程序是针对其所在的电路编写的。因此,要对单片机编程并实现一定的功能,必须了解整个系统的电路图。单片机编程是针对某个特定的电路进行的单片机编程是…

IT公司老板落水,各部门员工怎么救??

戳蓝字“CSDN云计算”关注我们哦!公司高层公司副总A:咱们开个会研究一下这个事情怎么处理。公司副总B:如果老板没有救成功,下任是谁呢?会不会影响公司的上市?公司副总C:我认为咱们开会应该讨论两…

使用 MaxCompute(原ODPS) java sdk 运行安全相关命令

摘要: 使用 odps console 的同学,可能都使用过 odps 安全相关的命令。 转自zhenhong 使用 MaxCompute console 的同学,可能都使用过 odps 安全相关的命令。官方文档上有详细的 odps 安全指南,并给出了安全相关命令列表。 简而言之…

苹果笔记本能不能用python_“苹”除了苹果还能组哪些词?苹组词,释义及造句汇总!...

“苹”字组词,很多人第一反应就是苹果。那么除了苹果,苹还能组哪些词?苹组词都有哪些?下面,浙江秦学教育小编为大家带来苹组词,释义及造句汇总!来更新我们的组词大全,大家一定要多积累&#xff…

历史回顾——NLP问题解决方案的演变史

摘要: 回顾NLP问题的解决方案,探寻当下最流行的NLP技术,激发NLP问题新的解决方案!NLP-深度学习时代之前:在深度学习来临之前的日子里,在自然语言处理算法(NLP)领域出乎意料地有许多相…

关于signed和unsigned进行整形提升所出现的问题

看如下代码: int main() {char a -1;signed char b -1;unsigned char c -1;printf("a%d,b%d,c%d", a, b, c);return 0; }输出结果如下图所示 为什么会出现这种结果呢,现在我来分析一下 内存中存储这些变量都是以补码的方式进行存储&#x…

flowable BPMN的组件汉化

1.背景: 现在flowable流程设计器已经部分做了汉化,但是bpmn的组件还是没有汉化的,这样对我们中国 人来说就不是很方便。 2.效果:如何实现这一效果呢? 3.实现 3.1. stencilset_bpmn.json拷贝这个json文件到我们的资源…

华为确认与三家EDA公司停止合作;开源安卓恶意软件窃取用户隐私信息;三星高通回应7纳米EUV工艺问题……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 速腾聚创与英国 Aidrivers达…

MaxCompute Console 实用小命令

摘要: MaxCompute Console 可以从 这里 下载。在阿里云官网可以查看 帮助文档。 这里跟大家分享一些 MaxCompute Console 中实用的小命令。 MaxCompute Console 可以从 这里 下载。在阿里云官网可以查看 帮助文档。 这里跟大家分享一些 MaxCompute Console 中实用的…

一个form 如何做两次提交_如何做一个优秀的家长

如何做一个优秀的家长文|潍坊坊子崇文中学父母对待孩子无外乎三种情况:一是事事管、时时管,做了很多事,效果却不好;二是什么都不管,什么都不做,放任自流,不闻不问,结果更不好&#x…

动态执行shell脚本

文章目录一、linux动态执行指定脚本二、需求思路分析①我要做什么?②先手动执行一遍流程③ 把执行命令记录下来三、动态执行脚本①手动制作脚本②脚本升级③ 脚本截图一、linux动态执行指定脚本 脚本目录 /app/CodeQualityScan/gblfy_cx/脚本名 sonar-scanner.sh用…