watermark

SpringBoot系列之日志框架使用教程

旧城冷巷雨未停 提交于 2020-04-21 23:34:07
基于上篇博客, SpringBoot系列之日志框架介绍及其原理简介 博客之后,本博客可以对日志框架的具体使用做一个比较详细的描述,以此作为一篇使用的手册,以此帮助学习Springboot者 @[toc] 1、SpringBoot日志级别 1)、日志级别简介 简介一下日志级别,按照从低到高排序:trace < debug < info < warn < error,eg:假如日志级别为info,则只会打印info级别及其高级别的日志,所以在项目中,可以通过调高日志级别,打少点日志,反之,想打多点就调低日志级别 2)、默认日志级别 Springboot支持的日志级别有:TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF,然后默认的级别是info,写一个简单的测试类验证这个问题: import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class SpringbootLoggerApplicationTests { Logger LOG = LoggerFactory

Oracle调优之no_unnest和unnest用法简介

别来无恙 提交于 2020-04-21 23:29:20
Oracle调优之no_unnest和unnest用法简介 本博客介绍Oracle SQL调优的一种常用也是很实用的方法,也即 /*+no_unnest */ 和 /*+ unnest*/ ,介绍Oracle 的 /*+unnest */ 、 /*+ no_unnest */ 之前,先介绍一下Hint。 Hint对于开发人员来说,可能不是很熟悉,但是对于DBA来说,Hint可是一种调优的利器,Hint 是Oracle 提供的一种SQL语法,是oracle早期因为oracle优化器还不是很完善加上去的,可以辅助oracle优化器,常用于SQL调优,通过Hint强行改变Oracle的执行计划,从而实现SQL调优 也就是说Hint语法可以人工地干预Oracle优化器选择执行计划,当然Hint虽然很实用,但是用的不好,也必然影响SQL性能,国内DBA大牛在其博文里就有曾提到,引用其博文的观点: 详情可以参考作者博文: https://dbaplus.cn/news-10-669-1.html ok,有了前面的必要知识后,可以介绍一下Oracle的Hint语法之no_unnest和unnest用法了,no_unnest、unnest显然是一对相对的用法 unnest:也即解嵌套,nest是嵌套的意思,也就是让子查询展开查询,和外部的查询进行关联、合并,从而得到执行计划 no_unnest

Android | 教你如何在安卓上实现二代身份证识别,一键实名认证

为君一笑 提交于 2020-04-21 18:45:44
前言   就在近期华为HMS ML Kit 发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又新增了银行卡识别(BCR)和二代身份证识别(ICR)。今天小编就给大家介绍一下其中的ICR能力。ML kit不仅提供语言相关的AI能力,还提供视觉方向的AI能力,具体信息大家可以移步 https://developer.huawei.com/consumer/cn/hms/huawei-mlkit 场景   作为一个有身份的人,进行身份认证自然不可避免。平时,我们买火车票、飞机票需要身份认证,住酒店、住宾馆需要身份认证,现在连打游戏都要做实名认证。虽然我们很乐意证明我们自己的身份,但是每次都要输入那18位长的要命的身份证号,脑子一点不清晰,手一抖就会出错。因此,使用二代身份证识别(ICR)扫描身份证,做身份信息的录入实在是相当方便。    旅游出行类app进行身份认证    游戏类app进行身份认证    任何需要进行身份认证的app,发挥你的想象力^_^   现在是不是跃跃欲试,想要自己开发实现啦?那我就废话不多说,给大家介绍一下简单集成的ML kit 实现ICR的步骤~~ 开发前准备 android studio 安装   很简单,下载安装即可。具体下载链接:    Android studio 官网下载链接: https://developer.android

产品经理,项目经理和技术经理是如何一起协作管理的?

别来无恙 提交于 2020-04-21 18:42:40
在软件项目开发中有一些不同的角色,但很容易让人陷入在概念和责任交叉的误区里。 在本文中,我们着重来过考量 IT互联网行业的三个主要职位:产品经理,项目经理和产品经理。这些专家都是项目开发的关键角色,似乎挺相像,但是区分他们的专业边界很重要。 角色定义 让我们开始深入分析这些职业的概念。想请大家注意一个小细节,尽管我们把这三个管理者角色合并在一篇文章里,但它们几个角色的性质是完全不同的。 产品经理 这位专家角色对产品生命周期负有全部责任: 包括产品理念的形成,原由......结束......典型的产品经理的工作没有尽头。在产品开发之后,他要持续照顾他的产品设计至少一年。 产品经理负责产品和用户体验,在财务和营销、运营方向上制定最成功的计划。他要知道用户想要什么以及开发团队能够做什么,并将其结合到最高质量的产品实现中。 项目经理 这个角色需要在项目开发过程中能够有效做强力执行的人。他甚至要将自己的灵魂置于管理和控制项目开发之中。他不仅要及时将项目完成并成功交付,还要为参与该过程的所有角色创造舒适的工作环境。 真正的项目经理被认为是开发团队和项目关联方之间的联系人。他希望工作团队能够理解并实现客户的全部需求(或在任何特定技术解决方案的情况下做友好的替换),而不会出现任何问题。 技术经理 这里有必要再明确此角色的名字。技术经理负责管理某个类似主题或方向相关的项目

“疫情”黑天鹅,让企业管理数字化转型迫在眉睫

本秂侑毒 提交于 2020-04-21 04:24:22
前言 一场毫无征兆的疫情袭来,从12月到现在,很多企业可能还没有反应过来就已经倒下了。“幸存者”也都在悬崖的边缘,苦苦挣扎。大部分企业面临的窘境是资金不足,需要裁减人员。但是裁员后,有没有足够的人力来获取更大的效益来维持周转。这样的悖论,把无数的企业推向了不可逆转的深渊。大家都急切的希望能够找到一个方法,能力挽狂澜。 一、危险与机遇并存 三年前正准备转型向办公硬件领域的钉钉,可能没有想到,一场疫情又把他拉回了老本行,钉钉赶上了这个风口是肯定的,然而除了钉钉,所有钉钉之前的老客户们,面对这场疫情,他们似乎看上去更加淡定,当那春节后在考虑用什么平台来进行远程办公的企业来说,老“钉子”们已经开始了自己新一年的运作。数字化社会的到来,具有更多数字化属性的企业会占据先机。 二、左手重生,右手毁灭 大年初一,导演徐峥和他的团队制作团队做出了一个前所未有的决定,《囧妈》将通过网络方式进行免费首播,收回了6.3亿。但是遭到了传统线下院线的极力声讨。 但是不可否认,徐峥放弃传统线下渠道,直接调头,在数字化平台找到了出路,将自己投资巨大的烫手山芋,立刻变现是一个完全正确的选择。因为时至今日,依然没有任何一部影片上映,没有任何一家电影院开业。当大家都在家待业,指望什么时候能够捞回本钱的时候。徐峥可能已经开始琢磨下一阶段的规划。 风口会来,风险也会来。重生还是毁灭,有的时候就是一个决定,而在当下

Flink监控:Monitoring Apache Flink Applications

元气小坏坏 提交于 2020-04-20 07:40:55
This post originally appeared on the Apache Flink blog . It was reproduced here under the Apache License, Version 2.0 . This blog post provides an introduction to Apache Flink’s built-in monitoring and metrics system, that allows developers to effectively monitor their Flink jobs. Oftentimes, the task of picking the relevant metrics to monitor a Flink application can be overwhelming for a DevOps team that is just starting with stream processing and Apache Flink. Having worked with many organizations that deploy Flink at scale, I would like to share my experience and some best practice with the

tomcat和mybatis源码导入eclipse

雨燕双飞 提交于 2020-04-19 21:13:53
记录tomcat和mybatis源码导入到eclipse的过程 开发这么久了,不能老crud,看看人家的源码和设计思路。 0. tomcat源码导入eclipse 下载tomcat源码 https://github.com/apache/tomcat , 然后按步骤下载(也可用git clone https://github.com/apache/tomcat.git ) 然后解压(此时eclipse无法识别) 第三方jar的地址共四个: https://mvnrepository.com/artifact/org.apache.ant/ant/1.10.7 , https://mvnrepository.com/artifact/org.eclipse.jdt/org.eclipse.jdt.core/3.21.0 , https://mvnrepository.com/artifact/javax.xml.rpc/javax.xml.rpc-api/1.1.2 , https://mvnrepository.com/artifact/javax.wsdl/javax.wsdl/1.4.0-20070705 ,下载完毕后放到lib目录下 然后去下载其他三个文件 eclipse-tomcat配置 ,解压到Tomcat源码目录下 打开eclipse导入tomcat源码,参考

TCP/IP之胡说八道NAT

百般思念 提交于 2020-04-17 23:52:14
网络早期 早期的网络硬件软件和协议是由来自五湖四海的学者一起研究讨论的。跟linux类似。 早期的时候都想着怎么设计,先实现嘛,所以没有考虑过安全问题,和抗攻击问题。也没什么人对网络攻击有兴趣。 到了上世纪80年代末,90年代初,网络广泛使用,收获了大量多的用户。这时候通讯就不得不考虑安全问题了。中间经过了多少台机器什么机器不知道,很容易被篡改攻击嘛。 为了安全问题就有了防火墙这样一个需求了。防火墙出现的主要原因还是使用网络的设备抗攻击能力不强,所以就找个大哥 防火墙 来一个人扛住所有的攻击。建了一个墙嘛, fire wall 吸引火力的墙。 墙内的系统内,各种各样,windows,linux,unix,各种各样的无系统的硬件,各种各样的老弱病残,自身系统和软件的漏洞。很容易被攻击,不可能都修复吧。有的系统可能开发者都不更新,或者是解散了。然后就需要一个专门来吸引火力的 软件或硬件 。 防火墙是一个过滤包的网络设备,可以是四层操作系统,底层硬件接口抓包,应用层软件分析包,看看哪些放行哪些该丢掉。放行的还要转发,转发就是路由器或代理的事情了。所以防火墙是一个路由设备或者是代理设备。 安全问题解决了,但是随着使用的人越来越多,IP又不够了呀,有得解决IP枯竭的问题。提高现有IP的利用率。如何分配和使用IP就成了新的问题。 研究得出一个解决的策略就是NAT Network Address

一款使用RxJava+Retrofit+MVP的快播App开源啦!

南楼画角 提交于 2020-04-17 20:46:06
《快播》,仿网易云音乐UI,整体采用RxJava+Retrofit+MVP的架构,支持在线视频播放,在线图片浏览等功能。 用到第三方开源库: ButterKnife:依赖注入框架 glide:图片加载 retrofit:网络请求 jieCaoVideoPlayer:播放器 抓取接口用于数据展示 效果图如下: 基类: package com.zmj.qvod.base; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.Toast; public abstract class

Linux 中的零拷贝技术 (二) 转

依然范特西╮ 提交于 2020-04-17 17:52:12
传统IO拷贝流程  比如:读取文件,再用socket发送出去  先读取、再发送,实际经过1~4四次copy。   1、第一次:将磁盘文件,读取到操作系统内核缓冲区;   2、第二次:将内核缓冲区的数据,copy到application应用程序的buffer;   3、第三步:将application应用程序buffer中的数据,copy到socket网络发送缓冲区(属于操作系统内核的缓冲区);   4、第四次:将socket buffer的数据,copy到网卡,由网卡进行网络传输。            图 1. 传统使用 read 和 write 系统调用的数据传输   传统方式,读取磁盘文件并进行网络发送,经过的四次数据copy是非常繁琐的。实际IO读写,需要进行IO中断,需要CPU响应中断(带来上下文切换),尽管后来引入DMA来接管CPU的中断请求,但四次copy是存在“不必要的拷贝”的。 题外话:什么是DMA?   其实DMA技术很容易理解,本质上,DMA技术就是我们在主板上放⼀块独立的芯片。在进行内存和I/O设备的数据传输的时候,我们不再通过CPU来控制数据传输,而直接通过 DMA控制器(DMA?Controller,简称DMAC)。这块芯片,我们可以认为它其实就是一个协处理器(Co-Processor)) Linux 下实现零拷贝的几种方式介绍 Linux 中的直接 I