java中怎么把生成文件到项目根目录_[SpringBoot2.X] 02- 项目结构介绍
POM文件
继承
Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。
spring-boot-starter-parent 是一个特殊的 starter,
它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签。
也就是继承的是springboot默认的启动器
依赖
启动器依赖
插件
spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。
将所有应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。
当运行"mvn package"进行打包后,使用"java -jar"命令就可以直接运行。
启动类
Spring Boot 的启动类的作用是启动 Spring Boot 项目
过去的方式是放在容器中启动,而spring是内置了容器所以是启动springboot
是基于 Main 方法来运行的。
注意:
启动类在启动时会做注解扫描(@Controller、@Service、@Repository......),
扫描位置为同包或者子包下的注解,所以启动类的位置应放于包的根下
SpringbootdeomApplication
启动类与启动器区别:
启动类
表示项目的启动入口
启动器
表示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
配置文件
Spring Boot 提供一个名称为 application 的全局配置文件
支持两种格式
- properteis
- YAML
properteis 格式
官网配置下载以及脚手架搭建的项目就会自动生成,生成位置如下图
YAML 格式
YAML 格式配置文件的扩展名可以是 yaml 或者 yml。
基本格式要求
大小写敏感
使用缩进代表层级关系
相同的部分只出现一次
相同部分只能出现一次 :错误写法
正确写法
配置文件存放位置
当前项目根目录中
当前项目根目录下的一个/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 等。
♥占位符可以获取配置文件中的键的值赋给另一个键作为值。
生成随机数
${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 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。
一些固定的不能被覆盖的属性。
一些加密/解密的场景。
java中怎么把生成文件到项目根目录_[SpringBoot2.X] 02- 项目结构介绍相关推荐
- java编译成功后生成文件的扩展名_【填空题】Java源程序文件编译后产生的文件的扩展名为(不用写圆点)【1】。...
在总账系统中,对结账的叙述,错误的是().A. 结账前,本月凭证必须登记人账B. 结账后,不能再输入 单位开展会计电算化的基本条件是().A. 企业发展的客观需要B. 企业注册资金要达到一定的规模C. ...
- 内存映射文件 写入 卡住_在Java中使用内存映射文件时检测(写入)失败
内存映射文件 写入 卡住 内存映射文件是一个很好的并且经常被忽视的工具. 我不会在这里详细介绍它们的工作方式(使用 力 Google Luke!),但我将快速总结其优势: 操作系统提供的延迟加载和写入 ...
- 在Java中使用内存映射文件时检测(写入)失败
内存映射文件是一个很好的并且经常被忽视的工具. 我不会在这里详细介绍它们的工作方式(使用 力 Google Luke!),但我将快速总结其优势: 操作系统提供的延迟加载和写入缓存(您不必自己编写,并且 ...
- 在Java中实现SFTP协议文件传输的两种解决方案
在Java中实现SFTP协议文件传输的两种解决方案 1.1 背景 1.2 关于 FTP /FTPS 1.3 关于SFTP 解决方案一:使用 JSch 库 解决方案二:使用sshj 库 这篇博文来聊聊在 ...
- Java中如何创建一个文件或者文件夹
Java中如何创建一个文件或者文件夹 创建一个文件夹: 调用Java中File类中的mkdir( )或者mkdirs( )方法 boolean makdir( ):创建一个文件夹,创建成功返回tru ...
- java 文件路径读取,java中依据路径读取文件
java中根据路径读取文件 根据文件路径读取文件.具体代码如下: /** * 根据文件路径读取文件 * @param path * @return String * @throws IOExcepti ...
- java中找不到文件是什么情况_java系统找不到指定文件怎么办
系统找不到指定文件解决方法如下:目录路径太长,这个文件找不到,是因为目录路径太长,windows识别不了这么长的目录,首先,这个目录上级目录已经是windows的.2.检查文件路径是否正确 3.另外, ...
- 视频教程-大型Java项目视频教程_王勇老师DRP项目教程完整版292集-Java
大型Java项目视频教程_王勇老师DRP项目教程完整版292集 动力节点王勇老师,CCTV<影响力对话>栏目特约嘉宾,Java培训知名讲师,中国Java培训领军人物,北京动力节点创始人,董 ...
- Pytorch项目实战聊天机器人(02.项目的准备阶段)
Pytorch项目实战聊天机器人(02.项目的准备阶段) 02.项目的准备阶段 二.2-2 NLP涉及知识 三.2-3 NLTK库 四 ,2-4 语料和词性标注 五 ,2-5 分词 六 , 2-6 T ...
最新文章
- QCustomPlot使用手册(一)
- Redis实现微博后台业务逻辑系列(六)
- fragment嵌套,viewpager嵌套 不能正确显示
- 【Python 标准库学习】伪随机数生成库 — random
- usercontroller.java,springboot controller 参数绑定
- 代码量统计小工具V1.0
- 【路径规划】基于NSGA2实现无人机三维路径规划matlab源码
- AI智能语音客服机器人系统/方案/案列/技术/项目
- php import mdf,excel表格怎么导入数据库数据格式转换-已有excel表格导入sql server生成*.mdf *.ldf文件......
- 实用,开源,生成朋友圈转发点赞截图小工具一枚
- TeamViewer15免费版更换账户登录设备
- 麦子学院C++学习笔记
- 计算机设备选型原则,计算机中通信技术的选用应遵循什么原则
- CheckM-Options-zn
- cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings
- 初学者如何学习C语言,C语言从入门到精通学习全路径
- python之xlwt、xlrd和openpyxl
- 服务器文件上传500报错,500 InternalServerError
- 机器人测钢卷直径_自动拆钢卷捆带装置的制作方法
- 修复:“ Windows进程激活服务(WAS)由于遇到错误而正在停止。”
热门文章
- ros(4)话题的自定义消息
- 网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?| 龙蜥技术
- 如何避免JS内存泄漏?
- 阿里腾讯今日头条纷纷翻牌子,ClickHouse到底有什么本事?
- 【深度学习】基于 Alluxio 数据缓存的性能优化
- 汇报时,如何让老板快速抓住重点?—— 黄金三步法
- 云端一体化差分+安全升级,AliOS Things物联网升级“利器”
- 阿里云直播转点播最佳实践
- 核弹级漏洞,把 log4j 扒给你看!
- “蚂蚁漫步”背后的定位原理思考