Java
接口返回图片使用什么类型_JavaWeb
public ResponseEntity<byte[]> icon() { // 第三方接口返回的图片验证码 ResponseEntity<byte[]> response = restTemplate.getForEntity(url, byte[].class); …… // 由后端转
docker compose使用
前置 初始化文件夹,网络。 init_dir.sh 启动脚本 常用容器 docker-compose.yml 其他 更新镜像 启动 停止 如果配置文件有更新,不能直接docker compose restart需要先stop再up。 nacos经常有破坏性更新,需要更新配置文件才能正常启动,建议固定好版本号。 其他几个经常保持最新版,未发现问题。 如有错漏,欢迎指正!谢绝
Spring HandlerInterceptor工作机制
本文以一个通过正常注册拦截器流程注册拦截器失败的实际场景,来带领大家阅读源码,体会Spring的HandlerInterceptor拦截器整个工作流程 简单认识 org.springframework.web.servlet.HandlerInterceptor是Spring框架中的一个接口,用于拦截处理程序(Handler)的请求和响应。它允许开发人员在请求处理程序执行之前和之后执行自定义的
FCKEditor 复制word里面带图文的文章,图片可以直接显示
如何做到 ueditor批量上传word图片? 1、前端引用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html&nb
quarkus数据库篇之三:单应用同时操作多个数据库
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 一个应用同时连接多个数据库进行操作,这是常见的场景,quarkus也不例外,今天就随本文一起来实战多数据源操作 如下图,今天要创建名为multi-db-demo的应用,此应用同时连接两个数据库,名为fist-db的库中是卖家表,名为sec
Javascript json动态生成表单
Javascript json动态生成表单 kingrome2009 于 2018-10-09 15:38:52 发布 4031 收藏 6分类专栏: vuejs2.0 文章标签: iview版权 vuejs2.0专栏收录该内容27 篇文章0 订阅订阅专栏JSON.stringify(mock,null,4).toString()格式化json格式在页面输出,这个form-create是一个开源框架
vue3 组合式 api 单文件组件写法
1 Vue3 组合式 API 的基本原理和理念 1.1 Vue3 中的 Composition API Vue3 中的 Composition API 是一种新的编写组件逻辑的方式,它提供了更好的代码组织、类型推导、测试支持和复用性。相比于 Vue2 的 Options API,Composition API 更加灵活和可扩展。 在 Composition API 中,我们使用 setup 函数来
为什么 MySQL 选择 B+树做索引?
提到 MySQL 索引,相信使用过的小伙伴并不陌生,日常工作中,我们经常会加索引来提升查询效率,那么,为什么一个慢查询加上索引查询速度就能提升一个档次?索引后面的实现机制到底是什么?今天就让我们一起来探讨这个话题。 申明:本文说的磁盘是指普通的机械磁盘 一、索引是什么 比如阅读时,索引就是书的目录,如果想快速到达某一篇文章,通常会先查询目录找到页码,然后通过页码找到文章。 如果对数据库比较熟悉的话
java Sping aop 以及Spring aop 的应用事务管理
1. 回顾 线程死锁概念和如何避免死锁的发生: 线程的通信 wait notify() notify():---Object类 线程的状态: NEW--->start()--->就绪状态---CPU时间片---运行状态RUNNABLE]--->sleep()--->TIMED_WAITING--->wait()---->WAITING----sysn---
BIO、NIO、AIO是什么有什么区别
BIO、NIO、AIO是Java编程语言中的三种不同的I/O模型。 1. BIO(Blocking I/O)同步阻塞式,是传统的阻塞式I/O模型,它是单线程的,每个I/O操作都会阻塞当前线程,直到数据准备好或者操作完成。在BIO模型中,每个连接都需要一个独立的线程来处理,因此在高并发场景下,线程数量会非常庞大,导致资源消耗较大。 2. NIO(Non-blocking I/O)同步非阻塞
class<T extends interface> 或 class<T extends abstract class>
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。 类型通配符一般是使用 ? 代替具体的类型参数 要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。 泛型作用: 参数化数据类型,提供编译时数据类型安全检测机制 泛型参数在编译和运行时候的状态?
详谈 springboot整合shiro
背景: 上文学习了shrio 基本概念后,本章将进一步的落地实践学习,在springboot中如何去整合shrio,整个过程步骤有个清晰的了解。 利用Shiro进行登录认证主要步骤: 1. 添加依赖:首先,在pom.xml文件中添加Spring Boot和Shiro的相关依赖。 <!-- Spring Boot --> <dependency> &l
Flink and Kafka Streams: a Comparison and Guideline for Users
This blog post is written jointly by Stephan Ewen, CTO of data Artisans, and Neha Narkhede, CTO of Confluent. Stephan Ewen is PMC member of Apache Flink and co-founder and CTO of data Artisans.
Java日志系列:Log4j使用和原理分析
目录一、简介二、使用三、日志级别四、组件说明LoggersAppendersLayouts五、配置加载初始化配置配置文件加载查看日志记录器的详细信息六、Layout的格式七、Appender的输出FileAppenderRollingFileAppenderDailyRollingFileAppenderJDBCAppender八、日志记录器的层级关系 一、简介 Log4j是Apache下的一款开
java基础运算符01
运算符 算数运算符:+,-,*,/,%(取余),++(自增),--(自减) 赋值运算符:= 关系运算符:<,>,>=,<=,==(两个=是等于,一个=是赋值),!=instanceof 逻辑关系运算符:&&,||,! 位运算符:&,|,^,~,>>,<<,>>> 条件运算符:?: 扩展赋值运算符:+=,-=
Shiro配置类中的各个配置项浅谈
背景: 上文中在落地实践时,对Shiro进行了相关的配置,并未对其含义作用进行详细学习,本章将进一步详解其作用含义。 Shiro配置类中的各个配置项的作用: @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSe
Leetcode 19. 删除链表的倒数第N个结点(Remove nth node from end of list)
题目链接 给你一个链表, 删除链表的倒数第n个结点, 并且返回链表的头结点. 示例 1: 示例 2: 提示: 链表中结点的数目为sz 1 <= sz <= 30 0 <= Node.val <= 100 1 <= n <= sz 思路 暴力解法: 可以先用循环遍历一次链表,获取长度. 再次循环使指针指向要删除的节点的前一个节点进行删除. 双指针法: 创建
【剑指Offer】58、对称的二叉树
【剑指Offer】58、对称的二叉树 题目描述: 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 解题思路: 本题判断一棵树是不是对称的,和第18题可以对比分析:二叉树的镜像,和LeetCode第101题:101. 对称二叉树是同一道题。 解法一:递归法 《剑指Offer》中给出的解答是定义一种先遍历右子结点,再遍历左子结点的新遍历方
【剑指Offer】59、按之字形顺序打印二叉树
【剑指Offer】59、按之字形顺序打印二叉树 题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 解题思路: 这道题仍然是二叉树的遍历,相当于层次遍历,可以和第22题:从上往下打印二叉树 和第60题:把二叉树打印成多行 这几个题对比起来进行分析。 相对而言,本题按之字形顺序打印二叉树是比较复
【剑指Offer】60、把二叉树打印成多行
【剑指Offer】60、把二叉树打印成多行 题目描述: 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解题思路: 在二叉树层次遍历上,我们使用的是队列,借助队列先进先出的性质实现,具体规律:每次打印一个结点时,如果该结点有子结点,则将子结点放到队列的末尾,接下来取出队列的头重复前面的打印动作,直到队列中所有的结点都打印完毕。在此基础上我们考虑这里的分行要求,不难想到我们只要增
http协议之请求报文
什么是http请求报文? 请求报文是在HTTP协议中,客户端向服务器发送请求时所使用的数据格式。它包含了请求行、请求头部、空行、请求体4个部分。其中请全体可以没有。 请求行:请求行由请求方法、URI和协议版本组成,用于描述请求要求的操作和资源位置。 请求方法:指示对资源执行的操作类型,如GET、POST、PUT、DELETE等。 URI:标识了要请求的资源的路径。 协议版本:指示客户端使用的
java中强引用对象的回收
先说结论,会被回收。 简单想一想,我们平时写java代码,如果不回收的话,内存肯定是不够用的。 一般我们见到的描述——“强引用对象不会被回收”,指的是依旧由gcRoot的有效引用到这个对象。 几段典型的代码可以参考下方的链接。 https://www.freebytes.net/it/java/jvm-strongreference.html
CommonsCollections2
环境搭建 Commons Collections 4.0 JDK8 ysoserial-master 基础知识 1.Java字节码加载过程 学习一下p神的文章: ClassLoader#loadClass:从已加载的类缓存,父加载器等位置寻找类,在前面没有找到的情况下,执行findClass ClassLoader#findClass:根据基础URL指定的方式来加载类的字节码 可能的
RocketMQ重置消费位点
RocketMQ 4.9.4 重置功能 在RocketMQ Dashboard的主题界面,提供了两个功能 重置消费位点,按照时间戳重置指定消费者组的消费位点,会按照时间戳找到最接近的消息位点,RocketMQ在存储消息时会记录消息的存入时间。 跳过堆积,直接跳到最大消费位点。 使用限制 只适合集群消费模式,并且消费者要在线 不能指定消费某一条消息。 基本原理 无论是重置消费位点还是跳过
理解Cookie和Session机制
理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。 1.0 Coo