文件属性

Spring Boot 配置元数据指南

老子叫甜甜 提交于 2019-12-02 04:50:22
1. 概览 在编写 Spring Boot 应用程序时, 将配置属性映射到 Java bean 上 是非常有用的。但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Processor 和 关联的 JSON 元数据文件 ,该 JSON 文档记录每个属性的含义、约束等。 2. 配置元数据 作为开发人员,我们开发的大多数应用程序在某种程度上必须是可配置的。但是在通常情况下,我们并不能够真正的理解配置参数的作用,比如它有默认值,又或者是过时的,有时我们甚至不知道该属性的存在。 为了帮助我们理清楚,Spring Boot 生成了配置元数据的 JSON 文件,为我们提供关于如何使用属性的有用信息。所以, 配置元数据是一个描述性文件,它包含与配置属性交互所需的必要信息。 这个文件的好处是 IDE 也能读懂它 ,从而为我们提供自动完成 Spring 属性配置的工作,以及其他配置提示。 3. 依赖 为了生成此配置元数据,我们将使用 spring-boot-configuration-processor 的依赖 . 因此,让我们继续将依赖项添加为 可选依赖 : <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot

第02章 IOC和bean的配置

本小妞迷上赌 提交于 2019-12-02 04:45:52
第 02 章 IOC 容器和 Bean 的配置 1 IOC和DI ①IOC( Inversion of Control ): 反转控制 。 在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。 反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器自动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。 ②DI( Dependency Injection ): 依赖注入 。 IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。 ③IOC容器在Spring中的实现 [1]在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。 [2]Spring提供了IOC容器的两种实现方式 (1)BeanFactory:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。 (2)ApplicationContext:BeanFactory的子接口,提供了更多高级特性

Python 设置S3文件属性中元数据的Content-Encoding值

穿精又带淫゛_ 提交于 2019-12-02 02:59:57
背景: 使用脚本从S3下载下来的CSV文件打开发现是乱码,但是在网页上面点击下载按钮下载后却能正常打开. 研究发现,在S3文件属性的元数据中有Content-Encoding值是gzip 浏览器下载的时候会识别这个值,然后在帮你自动减压后下载. 但是利用官方boto3包的download_fileobj()方法中,却无法指定对应的参数( 不知道以后不会优化 ). 下载的话就比较简单了,下载后直接利用gzip解压后再处理数据即可. import boto3 import gzip import csv s3 = boto3.client('s3') bucket = 'my_bucket' download_key = 'my.csv' file_path = '/tmp/my.csv' with open('/tmp/my.csv.gz', 'wb') as file_date: s3.download_fileobj(bucket, download_key, file_date) g = gzip.GzipFile(mode="rb", fileobj=open('/tmp/my.csv.gz', 'rb')) open(file_path, "wb").write(g.read()) csv_file_open = open(file_path, 'r') csv_file

ES6模块

醉酒当歌 提交于 2019-12-02 02:10:44
1. ES6模块是什么? ES6在语言层级上出现了“模块”的概念。 javascript中一个文件就是一个模块,如果模块中使用了ES6的语法import或者export, 这个文件就是一个ES6模块。 另外,其实在html文件还可以通过设置script脚本的类型type="module"。这个脚本也是ES6模块。 2. ES6模块的特性 ES6模块区别于一般文件模块的特性如下: 1. 默认使用严格模式 ES6模块默认使用"use strict"。代码按照 严格模式 运行。 所以模块中,顶级this是undefined,不允许是window。 2. 模块级作用域 普通的模块一般通过IIFE(立即执行函数表达式)来生成模块作用域。 ES6模块默认模块文件的代码处于“模块作用域”,模块内的内容外部无法访问。 外部代码只能通过import访问模块export出的内容。 需要注意的是,如果在html文件中通过type="module"的script标签外部引入js,文件之间彼此也不能访问。 // html--按照es6Module引入的文件遵循ES6Module的标准 <script src="1.js" type="module"></script> <script src="2.js" type="module"></script> // 1.js let user = 'lyra';

html5对于文件的相关操作

只愿长相守 提交于 2019-12-02 00:33:50
今天在写前端的时候碰到一些问题,现在对于web网页操作文件进一步了解。 主要参照: http://www.cnblogs.com/zichi/p/html5-file-api.html FileList 对象针对表单的 file 控件。当用户通过 file 控件选取文件后,这个控件的 files 属性值就是 FileList 对象。它在结构上类似于数组,包含用户选取的多个文件。如果 file 控件没有设置 multiple 属性,那么用户只能选择一个文件,FileList 对象也就只有一个元素了。 <input type='file' multiple/> <script> document.querySelector('input').onchange = function () { console.log(this.files); }; </script> 控制台输出文件相关内容。 Blob 上图中我们看到,File 对象是继承自 Blob 对象的,Blob 又是什么鬼? Blob(Binary Large Object)对象代表了一段二进制数据,提供了一系列操作接口。其他操作二进制数据的 API(比如 File 对象),都是建立在 Blob 对象基础上的,继承了它的属性和方法。 生成 Blob 对象有两种方法:一种是使用 Blob 构造函数,另一种是对现有的 Blob

vue学习

微笑、不失礼 提交于 2019-12-01 23:55:45
最近在前后端分离的学习中逐步找到了乐趣,并且不知不觉对前端也产生了一些学习的冲动,经过一系列的咨询,最终决定从学习vue开始。感谢在本文中涉及到的各位博客大神的指导(可以通过本文中的链接进一步学习大神们的思想),站在巨人的肩膀上学习,是一种莫大的幸福。 一、准备知识  1) vscode快捷键 https://www.cnblogs.com/weihe-xunwu/p/6687000.html https://blog.csdn.net/ss515896745/article/details/85651912 2) ES6知识 https://blog.csdn.net/qq_36838191/article/details/87776369 https://www.cnblogs.com/crazymagic/p/9714153.html 注意:相关的几篇博客都要看一下,这个人写的,就在后面 https://www.jianshu.com/p/7cb40e8d145a http://www.cnblogs.com/chrischjh/p/4848934.html 3) 基础知识 https://www.cnblogs.com/ppJuan/p/7151000.html https://www.cnblogs.com/xiaotanke/p/7448383.html https:/

ResultMap与ResultSet

守給你的承諾、 提交于 2019-12-01 23:01:58
MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而resultMap就是结果集映射的配置标签了。 在深入ResultMap标签前,我们需要了解从SQL查询结果集到JavaBean或POJO实体的过程。 从SQL查询结果到领域模型实体  通过JDBC查询得到ResultSet对象 遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值 根据ResultMap标签的type属性通过反射实例化领域模型 根据ResultMap标签的type属性和id、result等标签信息将HashMap中的键值对,填充到领域模型实例中并返回 一、resultMap 1、属性说明 id属性 ,resultMap标签的标识。 type属性 ,返回值的全限定类名,或类型别名。 autoMapping属性 ,值范围true(默认值)|false, 设置是否启动自动映射功能,自动映射功能就是自动查找与字段名小写同名的属性名,并调用setter方法。而设置为false后,则需要在resultMap内明确注明映射关系才会调用对应的setter方法。 2、基本作用:建立SQL查询结果字段与实体属性的映射关系 示例1

【IoT】物联网NB-IoT之电信物联网开放平台对接流程浅析

ぃ、小莉子 提交于 2019-12-01 21:53:21
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/liwei16611/article/details/82705855 电信物联网开放平台对接流程如下图所示: 1、创建 APP 应用 登录中国电信物联网开放平台对接测试环境SP Portal(https://180.101.147.135:8843),初次登录需要修改初始密码。 选择【应用管理】->【应用】点击右上角“+创建应用”。 典型的 NB-IoT 应用的参数设置可参考如下设置: 所属行业: 公用事业(NB-IoT) 关联API包: 基础API包和公用事业(NB-IoT) API包 平台能力: 规则引擎 数据存储时间: 当超过了数据存储时间以后,应用将不能再获取到已上报的数据。 短信服务器: 使用户可以通过短信服务器实现与工程师的紧密联络。服务器可以选择平台已经支持的服务器之一,也可以选择第三方服务器。 邮件服务器: 使用户可以通过邮件服务器实现与工程师的紧密联络。服务器可以选择平台已经支持的服务器之一,也可以选择第三方服务器。 CA证书: 第三方应用通过HTTPS对接中国电信物联网开放平台时服务器下发的证书,用于身份识别和电子信息加密,实现双向认证。证书文件限制为不超过1M的PEM格式文件

spring 使用外部文件说明

家住魔仙堡 提交于 2019-12-01 20:41:45
PropertyOverrideConfigurer的属性文件指定的信息可以直接覆盖Spring配置文件中原默认值(不管这个属性是否使用了占位符以及是否存在)。 <context:property-override location=""/> 或者 <bean class="org.springframework.beans.factory.config.PropertyOverrideConfigurer"> <property name="location"></property> </bean> 重写点位符强制的覆盖bean属性中的值,并不需要占位符。这也导致了.properties文件要使用特殊的格式如 person.name=may 对应于bean中的配置 <bean id="person"> <property name="name" value="jack"></property> </bean> 结果是 person的名字为may,被覆盖了 PropertyPlaceholderConfigurer是负责读取location属性配置的的properties属性文件里的属性值,并将这些属性值设置成Spring配置文件中的占位符里。 <context:property-placeholder location=""/> 或者 <bean class="org

Winfrom中设置ZedGraph显示多个标题(一个标题换行显示)效果

爱⌒轻易说出口 提交于 2019-12-01 16:17:47
场景 Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573 现在需要实现点击一个文件显示一个标题,点击两个文件则显示两个标题,以此类推。 原本只有一个标题效果 标题换行效果 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 首先需要将选中的文件的名字存储到一个全局的list中,然后在设置标题时遍历list,每个选项中追加 \r\n 实现代码: string title = String.Empty; if (Global.Instance.CompareData == null) { title = "默认标题"; } foreach( DataTreeNode node in Global.Instance.CompareData) { title += node.NodeText + "\r\n"; } myPane.Title.Text = title; 效果 来源: https://www.cnblogs.com/badaoliumangqizhi/p/11692512.html