日志框架logback
简介 logback 和 log4j 是一个人写的 springboot 默认使用的日志框架是 logback 。 三个模块组成 logback-core logback-classic logback-access 其他的关于性能,关于内存占用,关于测试,关于文档详见源码及官网说明 logback-core 是其它模块的基础设施,其它模块基于它构建,显然, logback-core 提供了一些关…
简介 logback 和 log4j 是一个人写的 springboot 默认使用的日志框架是 logback 。 三个模块组成 logback-core logback-classic logback-access 其他的关于性能,关于内存占用,关于测试,关于文档详见源码及官网说明 logback-core 是其它模块的基础设施,其它模块基于它构建,显然, logback-core 提供了一些关…
捕获组 捕获组是把多个字符当成一个单独的单元进行处理的方法。 这个方法是通过对括号里面的字符进行分组来进行创建的。 打个比方来说,正则表达式(dog)创建了单一分组,组里面是包含了”d”,”o”,”g”这三个东西的。 那么捕获组是什么意思呢,就是通过从左到右计算它的开括号来编号的。 这一点是比较难以理解的。 我们再举个例子,在表达式((A)(B(C)))当中,这里面是有四个下面的组的。 ((A)(…
qs是第三方库,我们在前后端交互时可能会用到这种形式 先看一下原始数据 在前端向后端传输数据时利用qs.stringfy(所要传的数据)就将json对象序列化成url形式如下图 而qs.parse是将url形式序列化成对象,如下图 很多朋友在前端向后端传输数据时会很困惑为什么我发出去请求了,后端接收到数据都是null呢, 解决办法 直接上图 ,只要我们在前端向后端发送请求时加上请求头 axios.…
22.1 介绍 作为一个轻量级容器,Spring被认为是EJB的替代品。我们确实相信,如果没有太多的应用和使用情况下,Spring作为一个容器,结合其在事物,ORM和数据访问方面丰富的支持功能,这比使用EJB和EJB容器完成同等功能上是一个更好的选择。 然而,重要的一点是使用Spring就不是不使用EJB了。实际上,Spring使得访问EJBs和实现EJBs和内部功能上更加容易。另外,使用Spri…
一, 创建安装用户 为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM 。用户可以在安装之前为 DM 创建一个专用的系统用户。 1. 创建安装用户组 dinstall 。 groupadd dinstall 2. 创建安装用户 dmdba 。 useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba 3. 初始化用户…
## Java取模(%)运算 > [上篇文章](https://yebukong.com/article/1101070795486109697.html "上篇文章") 提到了java取模会出现负数的问题,发现自己对这块理解有偏差,这里记录一下。 ### 介绍 取模运算,应该都用过,我之前的简单理解就是小学学过的取余运算,在参考了一些资料后,发现理解有偏差。这里放一段维基百科的介绍: &g…
一、简介 实现计算机视觉任务的过程中,不可避免地需要对图像进行读写操作以及图像预处理操作,下面介绍两个常用的Python图像处理库:OpenCV和Pillow。 OpenCV全称是由英特尔公司资助的开源计算机视觉库。 它由一系列C函数和少量C++类所组成,实现图像处理和计算机视觉方面的很多通用算法,例如特征检测与跟踪、运动分析、目标分割与识别以及3D重建等。 OpenCV作为基于C/C++语言编写…
uni-app自定义tabbar 为什么要自定义tabbar呢,虽然说直接在page.json里面直接配置性能可能更好点,但是有时候满足不了我们的需求,比如说,需要鉴权的时候,我们就需要通过不同的用户显示不同的底部 首先page.json里面 因为做tabbar所以默认的配置项必须注释,只留下跳转的路径即可 接下来就在 components 里面创建一个tabbar文件 tabbar.vue &l…
前言 前几篇文章已经说明Spring对BeanDefinition的解析与维护,在beans->bean标签定义下的bean 默认会通过 org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(String beanName, BeanDefinition bean…
4.高级自定义信号与槽 自定义信号与槽是PyQt5必须掌握的核心玩法,只有4个步骤: 定义信号 --> 定义槽函数 --> 连接 --> 发射 在使用面向对象方式写代码的时候从上往下的顺序最有可能的是: 定义信号 --> 连接 --> 发射 --> 定义槽函数 4.1 定义信号 信号可以带任何形式的参数。 signal1 =pyqtSignal() # 无参数…