Java
Java SPI META-INF/services 详解
目录什么是SPISPI和API的使用场景SPI的简单实现SPI原理解析Dubbo SPI总结 什么是SPI SPI(Service Provider Interface)是 JDK 提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件。 SPI的作用就是为这些被扩展的API寻找服务实现。 SPI和API的使用场景 API (Application Programmin
Kettle - 概述
ETL简介 Kettle简介 transformation 和 job的区别 Kettle 的核心组件 Kettle 特点 ETL简介 ETL,Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。 市面上常用的ETL工具有很多,
使用wkhtmltopdf的window-status参数解决生成的pdf中echarts图不完整问题
最近一直在头疼生成pdf报告的问题,一个页面几个至几十个数量不等echarts图,后面的echarts图在生成的pdf中有些时候只有部分图形,即使是在页面上有时浏览器黑屏,感觉快崩溃了。 使用了--javascript-delay 30000仍然无法解决图不完整的问题 然后反复看了wkhtmltopdf的文档,看到--window-status 这个参数,似乎可以满足等所有的图画完再生成pdf的需
kafka的安装和基本操作
基本概念 简介 Kafka 最初是由 LinkedIn 即领英公司基于 Scala 和 Java 语言开发的分布式消息发布-订阅系统,现已捐献给Apache 软件基金会。其具有高吞吐、低延迟的特性,许多大数据实时流式处理系统比如 Storm、Spark、Flink等都能很好地与之集成。 总的来讲,Kafka 通常具有 3 重角色: 存储系统:通常消息队列会把消息持久化到磁盘,防止消息丢失,保证消
去除spring security的默认登录页
在使用spring security时会默认带入一个登录页,使用SSO单点登录的时候也会跳出这个页面,我们的项目一般都会有自己的登录页面,所以这个默认页面其实是没什么用的 在过滤器配置文件里面加上下面的代码,就可以把这个默认页面移除了
vue3 如何通过defer来优化减少白屏时间
如果首屏加载的内容组件比较厚重或者数量大,那么第一次加载也会停顿很久。 可以通过控制台的Performence来观察render和loading的大致时间 优化的思路: 想让首屏页面的组件或者比较需要提前让用户看到的内容模块 优先放在第一帧来加载 加载时机:如果当前帧数时间大于 该模块的设定指定加载帧数时间,就让模块去加载 案例:目前通过大组件的案例来实践 <template>
Spring IOC @Configuration注解分析
引入 在使用SpringBoot开发时,最常用的注解有@Component、@Service、@Controller、@Configuration等。当类使用这些注解标记时,类会被Spring IOC容器管理,包括创建,填充属性和实例化。 但是Spring容器如何发现并将这些类放到容器进行管理呢? 今天这篇博客主要分析Spring如何处理@Configuration注解。 @Configurati
Webpack 插件实现 CSS 样式尺寸单位转换
Webpack 插件实现 CSS 样式尺寸单位转换 实现方式一 插件代码 以下是编写的一个 Webpack 插件,用于将样式文件中以 rpx 为单位的值转换为以 px 为单位的值(换算比率为 1px=2rpx): 上面的代码创建了一个名为 CssSzieConvertPlugin 的插件类。该插件通过注册到 Webpack 的 emit 钩子上来处理样式文件。 在钩子回调函数中,首先遍历所有的
lmkd白名单方案的实现,避免应用被杀
1 如何避免app被lmk杀掉 公司的项目可能有一些核心app(java app或native app),不想因为low memory被lmk杀掉。 粗糙一些的做法是在lmkd中添加白名单,白名单的应用永远不会被lmkd杀死。 上面代码是使用白名单的位置。 2 动态添加lmkd白名单 我的平台是Android 10的版本。 遵循第1节的思路,还是添加白名单。但是要求动态添加,就需要lmkd暴露一
计算机三级-信息安全技术-信息安全保障概述
去年五月份报的信息安全技术,考试时间为2022.9.26,因为封校和疫情原因,没有参加上;在这些期间准备时间只能说是10天,10天好像就有点多,大概一周吧,能考个及格,所以当大家备考时一定要老早准备,并关注一些不可预测性的事件防止发生。 下面是我所收集的知识点,望大家参考学习 故不积跬步无以至千里,学习永无止境 目录 第一章信息安全保障概述 第二章信息安全基础技术与原理 密码技术
关于Java中多线程
基本概念 什么是进程-->是操作系统资源分配和调度的最小(基本)单位(操作系统分配给当前进程一个内存区域供其使用) 什么是线程-->是程序运行的基本单位(等待操作系统分配时间片 让CPU执行该内存区域中的代码) 进程和线程的关系-->一个进程可以存在多个线程 线程是由进程创建的(寄生在进程中) 线程是进程中一个负责程序执行的控制单元 什么是单线程-->只处理一个任务 什么是
mybatis generator 使用与 mybatis 与属性转换
mybatis generator MyBatis Generator 是 MyBatis 提供的一个代码生成工具。可以帮我们生成 表对应的持久化对象(po)、操作数据库的接口(dao)、CRUD sql的xml(mapper)。 MyBatis Generator 是一个独立工具,你可以下载它的jar包来运行、也可以在 Ant 和 maven 运行。 引入相关依赖 mybatis 依赖和代码生
Java EE考点复习
Java EE 一、JavaEE概述 javaEE结构的软件系统分层 从逻辑上分:表示层、业务层、数据持久层 分布式系统开发的优点 基于面向对象设计思想的多层结构 超强的移植性与复用性 侧重于Web应用模式的设计,支持分布式开发 集成了众多的信息技术,称为一个功能强大的开发平台 相对独立的开发体系 二、JSP JSP作为最流行的Web技术的特点 一次编写,随处运行 可重用组件技术
格式化显示JSON数据
测试JSON View Code 想要实现的结果 View Code C# 后端的解决方案: 0X01.使用 Newtonsoft.Json 0X02.使用自定义 格式化排版 0X03.使用 System.Text.Json JsonHelper
前端js获取内网ip
奇怪,万里汇认证页面,居然可以识别出同网络下、同浏览器的两个手机,应该是前端识别到手机的内网IP或者MAC,之前也了解过前端JS获取内网IP或MAC。在github上有个库 webrtc-ip DEMO getIp.html <!DOCTYPE html> <html lang="en"> <head> <meta c
ZooKeeper启动时报错:JAVA_HOME is not set
zkEvn.cmd文件中 只需要在 if not defined JAVA_HOME ( 前面添加 set JAVA_HOME=C:Program FilesJavajdk1.8.0_333 参考: https://blog.csdn.net/Ocean_tu/article/details/85703092
JDK没有JAVAX.ANNOTATION.JAR包解决方案,无法使用@RESOURCE解决方案
高版本JDK无法使用 @Resource 注解解决方案 1. 普通项目 下载 javax.annotation-api-1.3.2.jar,并在 lib 目录中引入即可 2. Maven 项目 Maven项目:在 pom.xml 中进行配置
集合基础(黑马就业)
第一部分:ArrayList集合 集合和数组的区别 1.使用对象数组存储并输出对象 domain类 测试类 如果存储的数据长度经常发生改变,推荐使用集合 ArrayList集合的构造方法和添加方法 ArrayList的容量可变,底层也是通过数组来完成的 一段示例代码 可以看出集合中可以添加不同数据类型的数据,但是这样不太好。这里可以添加成功其实是泛型类型没有写,默
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
问题描述 在创建Azure App Service时,服务端的配置使用Java 8 + Tomcat 8.5。默认的根目录页面显示出App Service Tomcat版本信息,存在一定的安全隐患。 如何来避免这个问题呢? 问题解答 因为在初始创建App Service时,Azure会根据所选Stack, Web Server的信息默认生成首页内容。大多是情况下,在部署您的应用时,
学习日记——oop的三大特性
1.封装 (1)什么是封装 隐藏 方法 控制语句 (2)封装的步骤 如何隐藏 private 如何方法:setter /getter 如何控制语句:if判断 (3)实战训练 2.继承 (1)继承的原因 多类之间拥有多个相同的属性或方法 解决方式是:将相同的属性和方法抽取出来,封装到一个新的类中,并继承
SpringMVC参数接收与数据响应
SpringMVC如何接受请求参数(普通类型参数/对象类型参数/数组/json数据等) 1、普通类型参数 (1)在可以在方法参数上使用@RequestParam注解来绑定请求参数,此注解允许指定请求参数的名称,以及是否是必须传的参数。 (2)如果需要传的参数是URL的一部分,可以使用@PathVariable注解来绑定路径参数。 2、对象类型参数 常用的是@RequestBody注解,如果请求
Shiro自定义异常无法被捕获总是抛出AuthenticationException解决方案
问题描述 配置Realm之后,发现在Realm中抛出的异常无法被捕获,抛出AuthenticationException异常。例如请求接收的token无效等,这致使log文件里出现大量这样的异常堆栈信息。我司系统会对通过应用log文件检测异常数量,达到阈值进行告警。 经内部研判,这种Shiro认证失败的异常,程序可以自行消化,无须抛出。 场景再现 下面是error log
使用 Dockerfile 自定义 Docker 镜像
对于一些常用的 Docker 镜像,我们可以从 Docker 官方仓库或者国内的阿里云仓库中获取,比如 mysql、redis、nginx 等等。但是对于一些我们自己开发的程序,要想很方便的在 Docker 中部署,还是需要自己制作镜像。 这里不介绍 Docker 常用命令的使用,网上学习资料很多,这里就直接进行演示。以之前的博客【SpringBoot 文件上传下载工具样例】的 Demo 程序为基