框架搭建_配置文件加载|学习笔记

简介: 快速学习框架搭建_配置文件加载

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第四阶段)框架搭建_配置文件加载】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/679/detail/11799


框架搭建_配置文件加载


内容介绍:

一、了解配置文件

二、读取框架


一、了解配置文件

编写第一个工具,通过这个视频了解新的配置文件格式,以及如何操作配置文件。步骤比较简单。

首先第一步,进行简单的说明写代码。对整个配置文件进行编写,读取,了解配置文件如何使用。了解新的配置文件之前,先介绍现阶段都有什么样的配置文件可供选择。首先,比较易于读取的格式才适合作为配置文件,不能因为写配置文件,把自己累死,读取必须得在这个程序里有的工具能读,并且这个工具不能不满足这两个条件,擅自把某一个东西当成配置文件可能是灾难性的后果。一般情况下可以使用 XML 作为配置文件,包括前面大家在学习 spring 的时候,在学习 Java  web 的时候,也经常使用 XML 进行配置文件的编写,其次还可以使用 json 也是比较好的文件格式,文件格式做配置文件也是绰绰有余的,比较容易编写,并且所有的系统几乎都支持 json 的读取。还有一个格式叫做 yellow ,虽然经常会编写一些 place 文件,但是都能读取,也是扩展性比较好的文件格式,现在用的比较多。

还有一些格式,比如说 ini ,Ini 在 Windows 里比较多见,这种格式在Java 里不是特别常用。还有一些其他的格式,比如说 practice , properties 文件格式是 Java 默认的, Java 自带了 properties 文件的读取方式,比较好用,也比较适合 Java 。Spring boot 也默认选择 practice 来进行配置文件。但是今天选用一个新的格式。这种格式不同于刚才我说的格式,但是这种格式是有比较好的兼容性, Demo 本身的语法就借鉴了一些 Json 的语法,然后 hocon 跟Json,是可以相互调用的, hocon 可以直接编写 Json 的语法。


二、读取框架

它是一个兼容性比较好的配置文件格式,还比较好写,读取有现成的工具可以读,比较好用。在这种格式里面,可以包含一些语法。 hocon 文件格式全称叫做 human-optimized config object notation 翻译过来为人类优化的配置文件对象表示法,比较重要的一个单词就是 human 。Human optimist,也就是说这种配置文件是比较适合正常人类进行编写,也比较容易看懂,类似于 promise ,并且包含 json 的语法考试,还是比较强大的。

foo:{

Bar:10,

Baz:12

}

Foo {

Bar =10,

Baz=12

}

Foo.bar=10

Foo.baz=10

第一部分了解配置文件,以及它读取的框架。第一个步骤,看一看配置文件大致长什么样子。第二个步骤,看一看配置文件该怎么操作。第三个步骤,进入到代码当中来编写代码。我们先看第一步,它的格式大概应该是怎么样的?第一种写法完全和 Json 一模一样, foo 对象下有一个 bar 属性,有一个 baz 属性,可以使用冒号,作为属性名和属性值之间的分隔。也可以使用等号作为分隔,还可以再写成简写的形式,这个时候大家能发现这三种写法是完全等价,一模一样,同样的方式去读。

Val config: Config = configfactory.load()

Val bar = config.getint(“foo.bar”)

Val baz = config.getint(“foo.baz”).

hocon 有一个现成的框架读取,叫做 lightbend config 这个框架,可以直接读取 hocon 的配置文件,读取的方式也比较简单,直接使用 config factory load ,加载一个配置文件,以直接使用 config 这样的对象, get int, get bubble 等等的方法来去传入 Key ,获取相应的 value ,这个方式还是比较简单的。

Package cn.itcast.test

Import com,tyoesafe.config.configfactory

Object configtest {

Def main(args: array[string]):unit={

//1.创建工具类

Val config =configfactory. Load(resourcebasename=”test.conf”)

//2.读取

Val bar=config.getint(“foo.bar”)

Val baz=config.getint(“foo.baz“)

//3.打印

Println(bar,baz)

}

}

第一步导入 maven ,叫做 compact safe , Artifact ID 叫做config ,前面 practice 部分有定义。接下来加载一个新的配置文件,一个新的 file 叫 test.conf ,配置文件当中编写一些内容,首先编写一个叫 foo.bar=10 ,然后再编写 foo.baz=20 接下来我希望大家能把它读出来。 idea 也为 hocon 提供了一个插件,点击 enable hocon plugin ,就可以下载对应的 plugin ,使用对应的 plugin ,但是意义不是特别大。就不再去使用这个插件,配置文件不会特别深入的编写它,会使用基础的一些语法。接下来,找到类,然后创建一个新的包,叫做 test 。写测试性的代码,放在 test 的包下。创建一个新的 scala class ,叫做 config test ,改为 object ,提供 main 方法。加载配置文件读取的工具类,加载创建工具类。

第二步,进行读取,第三步打印。这就是整体上的步骤。创建工具类,非常简单,首先 val ,命名为叫做 config ,接下来选一个类叫做 config factory 。找到 typesafe下的 config ,加载出来 config factory 以后,其中有一个静态方法,直接选 load ,这个方法是有重载的,如果不传任何参数,它默认加载的是 application.conf 的配置文件,放在 resources 目录下,但是配置文件叫 test.conf 把这个名字揣进来,命名为 test.conf 。 Config 这个类加载出来就进行读取。使用 config.GET in 进行加载,  val 叫做 conflict.get int ,可以直接 foo.baz ,此时两个全部读取出来了, print  bar.baz 类就写完了,这种代码比较简单,就不再过多的重复。直接运行一下,大家发现 bar 是10, baz 是20,整个内容读取出来了,没有任何问题。办法比较简单。接下来进行总结,进入刚才编写的配置文件当中,大家注意到 Key  , value 是有类型的,如果写上双引号再写10,就是 string ,应该通过 get string 进行读取。

相关文章
|
Kubernetes 负载均衡 应用服务中间件
【K8S系列】第十三讲:Ingress详解
【K8S系列】第十三讲:Ingress详解
8428 0
|
11月前
|
人工智能 安全 JavaScript
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS纯血鸿蒙新特性
HarmonyOS 3.1引入了Stage模型,增强ArkTS语言、应用程序框架、Web、ArkUI等子系统能力。新增功能包括Ability框架的Stage开发模型、ArkUI组件能力提升、应用包管理接口、公共基础类库支持Buffer读写、Web服务文档预览及编辑、图形图像编解码支持等。从API 9开始,Stage模型成为主要开发模型,支持更灵活的应用生命周期管理和窗口调度,提供更好的组件与窗口弱耦合体验。此外,HarmonyOS NEXT开发者预览版实现了全面自研,被称为“纯血鸿蒙”,具备自主可控、高度弹性、更强的安全性和隐私保护特性。
769 21
|
10月前
|
负载均衡 Java API
Spring Cloud是什么及基本特性都有哪些?
Spring Cloud 是用于构建健壮云应用的框架,包含多个子项目。其核心组件如Eureka(服务注册与发现)、Hystrix(熔断器)、Ribbon(负载均衡)等,帮助开发者快速实现微服务架构。Spring Cloud 提供了服务注册与发现、分布式配置、路由、断路器等功能,简化了微服务开发与管理。本文将重点介绍服务注册与发现及分布式配置两大特性。
568 5
|
11月前
|
Python
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
386 31
|
SQL 存储 Java
第三章 SQL错误信息
第三章 SQL错误信息
268 1
|
人工智能 监控 安全
AI计算机视觉笔记十三:危险区域识别系统
本文介绍了如何在 IPC 监控视频中实现区域入侵检测,通过 YOLOv5 和 ByteTrack 实现人物检测与多目标跟踪。系统能在检测到人员进入预设的危险区域时发出警报,保障安全。主要步骤包括:1)使用 YOLOv5 识别人物;2)使用 ByteTrack 进行多目标跟踪;3)利用射线法判断物体是否进入禁区内。项目基于 Python 开发,使用海思、君正、RK 等摄像头模组,代码已在 RV1126 上验证,计划移植至 RK3568 平台。项目结构清晰,包含模型训练、跟踪算法及图形化界面展示等功能。
|
算法 Java Linux
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
这篇文章介绍了如何使用Java的Graphics2D类在图片上合成另一个照片,并将照片切割成圆形头像的方法。
228 1
java制作海报二:java使用Graphics2D 在图片上合成另一个照片,并将照片切割成头像,头像切割成圆形方法详解
|
Java 编译器 Spring
Spring AOP 和 AspectJ 的区别
Spring AOP和AspectJ AOP都是面向切面编程(AOP)的实现,但它们在实现方式、灵活性、依赖性、性能和使用场景等方面存在显著区别。‌
517 2
|
移动开发 小程序 数据可视化
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
294 2
|
PHP
CTFSHOW 每周大挑战 RCE极限挑战
CTFSHOW 每周大挑战 RCE极限挑战
264 0