optional

idea+springboot+JRebel 实现热部署

我的未来我决定 提交于 2020-03-01 10:35:18
本文已转到个人网站空间(明月工作室): http://www.freebytes.net/it/java/idea-springboot-jrebel.html 项目实现热部署的好处: update代码(不改变配置文件和外部引用时)不用重启 改变类的结构(增加属性、增加/修改/删除/编辑方法、注入对象等)不用重启 增加/删除类文件不用重启 spring boot实现热部署的方式有两种: 1.通过再项目中加入如下的依赖 然后再application.properties中加入 spring.devtools.restart.additional-paths=src/main/java(热部署的包目录) 在pom文件中加入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools; 之后依赖 myboot项目的项目如果想要使用devtools,需要重新引入 --> </dependency> <dependency> <groupId>org.springframework</groupId>

npm WARN optional SKIPPING OPTIONAL DEPENDENCY

无人久伴 提交于 2020-03-01 10:23:25
npm install的时候,报了以下内容 fsevents @.... PS F:\web\ npm install npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) audited 20486 packages in 19.838s found 10 vulnerabilities (5 low, 4 moderate, 1 critical) run `npm audit fix` to fix them, or `npm audit` for details 这个问题在win/linux使用时,就会报警告, 因为fsevents的依赖属于mac操作系统,所以 忽视即可 并且发现10个漏洞(found 10 vulnerabilities) 控制台提示 run 'npm audit fix' ,执行完了,如下: updated 4

Stream流的使用

血红的双手。 提交于 2020-02-29 03:57:46
Stream流的使用 本篇主要讲解JDK8中 Stream流的使用, 包括如何 筛选 、切片、映射 、查找、匹配 、归约 等等 每个类型都会有对应的案例 简单易懂  1.Stream的概念  Stream API是JDK8新添加的处理集合的关键组件,这里的Stream流和I/O流不同,Stream是对集合对象功能的增强,它专注对集合对象提供各种便利的操作,只要给出需要对其包含的元素执行什么操作,比如“过滤掉长度大于10的字符串”、“获取每个字符串的首字母”等, Stream会隐式地在内部进行遍历,做出相应的数据转换 。  2.Stream流的创建   2.1 从集合创建 List<Integer> list = new ArrayList<>(); //1.从集合创建流 list.stream(); list.parallelStream();   2.2 从数组创建 //Arrays的静态方法 stream Arrays.stream(new int[] {1, 2, 3,});   2.3 创建数字流 //IntStream流 int intarr[] = {1,2,3}; IntStream.of(1,2,3); IntStream.of(intarr); //LongStream流 long longarr[] = {1L , 2L , 3L}; LongStream.of

es2020 新特性

↘锁芯ラ 提交于 2020-02-28 06:02:34
种草 ES2020 新特性 这几年,Ecma TC39 一年一次更新 ecmascript 规范标准,截止目前,以下特性已进入 finished 状态。现在带大家体验种草 ES2020 新特性。 一:Promise.allSettled Promise.all 缺陷 都知道 Promise.all 具有并发执行异步任务的能力。但它的最大问题就是如果其中某个任务出现异常 (reject),所有任务都会挂掉,Promise 直接进入 reject 状态。 想象这个场景:你的页面有三个区域,分别对应三个独立的接口数据,使用 Promise.all 来并发三个接口,如果其中任意一个接口服务异常,状态是 reject, 这会导致页面中该三个区域数据全都无法渲染出来,因为任何 reject 都会进入 catch 回调,很明显,这是无法接受的,如下: Promise.all([ Promise.reject({code: 500, msg: '服务异常' }), Promise.resolve({ code: 200, list: []}), Promise.resolve({code: 200, list: []}) ]) .then((ret) => { // 如果其中一个任务是 reject,则不会执行到这个回调。 RenderContent(ret); }) .catch((error)

Java8 Stream reduce操作

耗尽温柔 提交于 2020-02-27 15:03:45
Reduce,顾名思义为减少的意思,就是根据指定的计算模型将Stream中的值计算得到一个最终结果 。在之前的一篇文章Java8函数式编程中简单介绍, Stream的count、min 和max方法底层都是依赖reduce实现的 ,本篇文章将简单介绍一下Java8 Stream reduce的几种基本用法。 首先来看一下Reduce三种形式: S.N. 方法说明 1 Optional<T> reduce(BinaryOperator<T> accumulator); 对Stream中的数据通过累加器accumulator迭代计算,最终得到一个Optional对象 2 T reduce(T identity, BinaryOperator<T> accumulator); 给定一个初始值identity,通过累加器accumulator迭代计算,得到一个同Stream中数据同类型的结果 3 <U> U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner); 给定一个初始值identity,通过累加器accumulator迭代计算,得到一个identity类型的结果,第三个参数用于使用并行流时合并结果 1. Optional<T> reduce

Java8新特性实用指南

强颜欢笑 提交于 2020-02-27 13:26:26
Java8引入了很多非常实用的新特性,具体的介绍请参考 JDK8的十大新特性介绍 。但是介于该文偏重与新特性的介绍,内容全而不精,所以特地又写了这篇 Java8新特性实用指南 ,从应用的角度系统介绍了常用的五个新特性: Lamda表达式 Stream Optional类 重复注解与类型注解 新的时间日期API 为什么使用 Lambda 表达式 Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 基本案例 Runnable runnable=new Runnable() { @Override public void run() { System.out.println("hello"); } }; //等效于上面 Runnable runnable= () -> System.out.println("hello"); TreeSet<String> treeSet=new TreeSet<>(new Comparator<String>() { @Override public int compare(String o1, String o2) { return Integer.compare(o1.length(),o2

Maven设置代理上网

自古美人都是妖i 提交于 2020-02-27 09:54:06
公司网络是通过代理上网的,因此一些用到中央仓库的东西都需要设置一些代理信息 修改maven安装目录下的 settings.xml 文件(或者在家目录下的 .m2 下面),新增代理节点的信息,同时配置阿里云的maven仓库: <!-- 代理服务器信息 --> <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>proxy.host.net</host> <port>8080</port> <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts> </proxy> </proxies> <!-- 仓库信息 --> <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> 来源: oschina 链接:

一种在 python 中用异步协程实现的HTTP-API测试工具

南楼画角 提交于 2020-02-27 07:23:33
1 实现内容 通过包装 python 的内部模块 argparse , asyncio 和第三方库 aiohttp ,结合 python 3.5 之后的 async , await , 装饰器 等语法糖编写了一个 HTTP-API 测试工具,各 HTTP-API 以协程为单位异步并发请求。 对于主要心思花在 诸如 HTTP 结合 RESTful 接口设计开发或架构相关得广泛 的角色可以考虑用这个工具测试所编写的HTTP-API接口。如和是30个相同HTTP-API的请求的运行打个照面(异步并发将节约2s时间): ... 15 http://api.heclouds.com:80/ipc/video/boot_address 31.41ms 17 http://api.heclouds.com:80/ipc/video/boot_address 46.86ms 20 http://api.heclouds.com:80/ipc/video/boot_address 46.86ms sync request total time: 1939.13ms async request total time: 203.08ms time saved about 1736.05ms from sync to async ---------------------done-------------

Java 8 新特性 学习笔记——Optional基础

我与影子孤独终老i 提交于 2020-02-27 06:42:12
前言 身为一名Java程序员,大家可能都有这样的经历:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。这正是一些类似 Guava 的外部API试图解决的问题。一些JVM编程语言比如Scala、Ceylon等已经将对在核心API中解决了这个问题。 Optional概述 新版本的Java,比如Java 8引入了一个新的Optional类。Optional类的Javadoc描述如下: 这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 本文会逐个探讨Optional类包含的方法,并通过一两个示例展示如何使用。 实例演示 of 为非null的值创建一个Optional。 of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException 。 ofNullable 为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。 isPresent 如果值存在返回true,否则返回false。 get 如果Optional有值则将其返回,否则抛出NoSuchElementException。

Stream语法简介

一笑奈何 提交于 2020-02-27 04:43:06
一、关于Stream Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的 查找、过滤和映射数据 等操作。 使用 Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询 。也可以使用 Stream API 来并行执行操作。简言之,Stream API 提供了一种高效且易于使用的处理数据的方式 二、什么是Stream Stream 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 需要注意的是: Stream 自己不会存储元素。 Stream 不会改变源对象。相反,他们会返回一个持有结果的新Stream。 Stream 操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。 三、Stream操作的三个步骤 创建Stream:可以通过集合、数组等数据源,来创建一个 Stream 流 中间操作( Intermediate ):中间操作链队数据源的数据进行处理 终止操作( Terminal ):一旦执行终止操作,就执行中间操作链,并产生结果,之后被执行的 Stream 流便不再被使用 四、创建Stream的几种方式 1.通过集合创建Stream Java8 的 Collection 接口有两个获取流的 default 方法,用 default 修饰,因为 List 和 Set 是