自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (33)
  • 收藏
  • 关注

原创 MybatisPlus实现数据权限隔离

引言Mybatis Plus对Mybatis做了无侵入的增强,非常的好用,今天就给大家介绍它的其中一个实用功能:数据权限插件。数据权限插件的应用场景和多租户的动态拦截拼接SQL一样。

2024-04-10 09:11:35 566

原创 一文搞懂Mybatis插件原理

在学习Mybatis源码的时候,会经常看到有一个以“plugin”命名的包,自然而然的我们会想到在搭建项目框架的时候使用到的配置标签。其实通过名字我们就能猜到它的作用就是给Mybatis框架做扩展的插件,例如本文将要介绍的PageInterceptor分页插件就是利用配置标签实现的分页功能。其实Mybatis插件的原理非常简单,看完这篇文章,你不仅能了解Mybatis插件的原理,也能自己实现一个插件,例如分页插件、慢sql统计插件等。

2024-04-05 09:00:00 570

原创 一文搞懂CGLIB动态代理-全网最细的男人

CGLIB没有使用反射,那它是如何实现运行时动态调用的呢?什么是CGLIB无限循环调用问题,怎么产生的?

2024-03-30 23:43:14 426

原创 一文搞懂Java动态代理:为什么Mybatis Mapper不需要实现类?

在学习Java动态代理之前,我想让大家先思考这样几个问题。如果你还不知道上述问题的答案,那么这篇文章一定能消除你心中的疑惑。如需转载请注明文章来源及原地址。支持原创,侵权必究。

2024-03-22 17:21:28 877

原创 软件License授权原理

在我们向客户销售商业软件的时候,常常需要对所发布的软件实行一系列管控措施,诸如验证使用者身份、软件是否到期,以及保存版权信息和开发商详情等。考虑到诸多应用场景可能处于离线环境,无法依赖网络进行实时认证,所以还需要考虑单机认证时的防破解问题。总之,License许可证利用HTTPS网站的证书和签名技术,一方面证明当前使用者是申请License的本人,另一方面要防止恶意破解,并伪造篡改License达到白嫖的目的。

2024-02-25 09:59:34 1057

原创 工厂设计模式看这一篇就够了

本文将重点介绍几种工厂设计模式:简单工厂、工厂方法模式、抽象工厂模式和建造者模式。这几种设计模式在生产制造的流程下层层递进,可以满足不同的使用场景。在实际运用时,没有一个万能的工厂模式可以套用,要结合具体业务场景选择合适的设计模式。大部分童鞋很容易将这几种工厂模式弄混淆,所以建议大家收藏+关注,以后要用到了方便查阅。在面向对象的世界里,世间万物皆是制造(实例化和初始化)出来的。如果只是单单构造出一两个对象,代码相对来说并不复杂,可是一旦需要构造成百上千的对象,每种对象的构造过程又不尽相同,这个时候就需要利用

2024-01-21 10:43:49 977 1

原创 多租户看这一篇就够了

XaaS(IaaS、PaaS和SaaS)三种模式的概念及区别?多租户是什么?多租户可以用来干什么?有哪些租户隔离方案?这些方案的适用场景有哪些,它们各有什么优缺点?XaaS(IaaS、PaaS和SaaS)三种模式的概念及区别?IaaS(Infrastructure as a Service),中文名叫基础架构即服务。通过即用即付的方式为用户提供网络、存储和计算等基础设施资源。IaaS可以节约用户成本,也更加灵活易扩展,适合全栈开发者。

2024-01-07 11:22:17 970

原创 你真的理解了阻塞和非阻塞、同步和异步吗?

举个栗子,调用线程请求I/O时开启另外一个线程处理,在I/O线程读取的同时,调用线程可以做别的事情,所以调用线程是非阻塞的状态,但是调用线程把其他事情都处理完了之后,还是要问询I/O线程数据是否已经读取完毕,这个过程就是同步的,或者可以称为“伪异步”。采用I/O多路复用策略,阻塞的I/O连接数和线程数是1:1,非阻塞的I/O连接数和线程数是N:1,这样就平衡了I/O和CPU速度上的差距。以处理I/O为例,如果是调用线程处理阻塞型I/O,那么调用线程会被挂起,此时调用线程就是阻塞的;

2023-12-24 10:26:46 452

原创 Mybatis-Plus利用Sql注入器批量插入更新

Mybatis-Plus是在Mybatis持久层框架上封装的一层非常好用的工具,最近因为想要在Mapper里加入自己自定义的通用方法,所以用到了Mybatis-Plus的Sql注入器。这种方式与自己写一个通用Mapper的不同在于,Mybatis-Plus提供的AbstractMethod方法类,实现的接口里可以获取到表信息,我们可以利用它们做批量插入和批量更新的sql拼装。将上面的批量更新方法对象添加到默认sql注入器的方法列表。一同添加的还有mybatis-plus自带的批量新增方法。

2023-12-16 08:45:00 792

原创 血的教训,BigDecimal踩过的坑

所以就不存在精度问题了。当然,这里要特别注意的是,valueOf方法对double类型的值可以保证精度,但是如果传的是float类型,例如0.8f,则依然会有精度问题。使用BigDecimal构造函数和使用valueOf方法初始化,两种方式得到的结果不一样,valueOf方法初始化的BigDecimal数据计算是精确的。由于计算机天生的无法表达完整的二进制浮点数的小数,二进制的小数是无限循环的,所以只能无限接近于精确值,这就造成了浮点计算的精度问题。否则,将返回除法的确切结果,就像对其他操作所做的那样。

2023-12-12 08:30:00 928

原创 单点登录看这一篇就够了

你了解单点登录吗?为什么要使用单点登录?它有哪几种实现方式?每个实现方式的优缺点及适用场景是什么样的?看完这篇文章以后,你将解开以上疑惑。

2023-12-09 08:30:00 873

原创 层次分析法--可以帮助你做决策的简单算法

层次分析法的核心其实就是层次单排序。层次单排序是对一个目标下的多个影响因子,计算各个因子对于该目标的权重。利用层次单排序我们就能在一个树型结构的层次评价模型里,由最上层的目标层层递进向下,最终得到树的叶子节点的权重,即我们想要得到的各个方案的权重。当我们把一个树模型上的所有节点的得分(可以理解为对上一层的权重)都计算出来之后,最终的方案的权重也就出来了。

2023-11-22 21:36:41 608

原创 Java Class 类文件格式看这一篇就够了

深入理解Java虚拟机”一书中给出了定义,“Class文件是一组以8位字节为基础单位的二进制流”。各个数据项目按照顺序紧凑排列,中间没有分隔符,整个Class文件没有一点空间上的浪费。利用idea插件BinEd打开Class文件,我们可以看到用十六进制表示的Class文件,开头是固定的0xCAFEBABE(咖啡宝贝)魔数,它的唯一作用是用来验证此文件是可以被虚拟机接受的Class文件,而不是通过后缀.class来验证,因为后缀名是可以人为修改的。很多格式如gif或者jpeg等文件头都存在魔数。

2023-11-22 21:28:15 372

原创 kafka原理看这一篇就够了

在同一个消费组里,消费者和partition的关系是1:1或者1:n,不能出现消费者与partition是n:1的情况,意思是同一个消费组里消费者数量要小于等于parition的数量。因为不这样做就会造成多个消费者共享一个offset,从而就不能保证一个partition内的消息的顺序性,也会造成消息被重复消费的安全问题,这是一种不稳定的重复消费。即ISR列表的副本最小数量。因为ISR列表始终要有leader副本,所以如果该配置默认是1,实际上是起不到副本作用的,所以该配置最好配置为大于1的数。

2023-11-20 20:49:13 150

原创 Java方法中不使用的对象应该手动赋值为NULL吗?

在java方法中,不使用的对象是否应该手动赋值为null?我们先来通过一个示例看一下。

2023-11-15 20:58:11 569

原创 Java虚拟机运行时数据区结构详解

Java虚拟机运行时数据区结构如图所示。

2023-11-15 20:53:36 373

原创 JVM GC 调优命令看这一篇就够了

然而,代码中存在一个问题是异步打印业务Kafka topic数据,由于数据量较大,大量对象在内存中积压等待打印,最终导致了OOM。当Java程序崩溃并生成core文件时,jstack工具可以帮助我们获取core文件的java stack和native stack的信息,这样我们就能轻松地了解Java程序崩溃的原因以及问题发生在程序的哪个地方。另外,jstack工具还可以附属到正在运行的Java程序上,获取当前运行的Java程序的java stack和native stack的信息。

2023-11-11 23:41:52 173

原创 DTO、VO、BO、PO等各种XO汇总

Plain Old Java Object(POJO),它的本来含义是指一个常规的、不受任何框架、平台的约束和限制的Java对象。可以认为,如果一个模块定义的对象皆为POJO,那么除了依赖JDK,它不会依赖任何框架或平台。POJO对象并非只有getter/setter的贫血对象,它的主要特征不在于它究竟定义了什么样的成员,而在于它作为一个常规的Java对象,并不依赖于除语言之外的任何框架。它的目的不是数据传输,也不是数据持久化,本质上,它是一种设计模式。

2023-10-26 22:55:49 233

原创 微信小程序解析用户加密数据

在上一篇文章“微信小程序如何获取用户信息”中我们完成了用户明文数据的校验工作,本文将学习解密用户的非明文用户信息,也就是获取用户的openId和unionId。

2023-02-11 22:15:47 1873

原创 微信小程序如何获取用户信息

我是IT果果日记,微信公众号请搜索 IT果果日记微信小程序用户基本信息有哪些?除了基本信息,微信还会提供openId和unionId,它们有什么作用和区别?在获取用户信息的过程中,如何知道明文数据是否被篡改了?session_key 该如何使用呢?带着这些问题,我们开始今天的学习。用户基本信息有以下7个,他们属于明文avatarUrl 用户微信头像的URL地址。city 城市。country 国家。gender 性别,1表示男,2表示女,0表示未知。language 语言区域。

2023-02-10 22:53:33 15663 4

原创 微信小程序授权登录流程

什么是微信小程序登录?它的作用是什么?这篇文章你会了解到微信小程序的登录流程。

2023-02-10 22:50:54 3900

原创 MySql变量用法详解

MySql变量主要分为系统变量、用户变量和局部变量,它们的区别是什么?分别有什么作用呢?下面会一一给大家讲解一下,并结合一个示例,演示怎么样运用MySql变量,查询一个父节点及它的所有子节点?

2023-02-09 23:31:14 4150

原创 Spring-Boot-Starter快速实现Excel导入导出的方法

IT 果果为了满足项目中快速实现 excel 导入导出的功能,将 excel 开源工具 easypoi 整合成 spring-boot-starter 的方式,在做到对 easypoi 无侵入的同时减少了一些重复代码。例如:增强了 easypoi 对于字段值重复校验的功能;提升了字典转换的便捷性和效率;增加了字段之间联动转换的功能;

2023-01-29 10:52:57 1426

原创 什么是科技创业公司?

什么是科技创业公司?“科技创业公司”是具有下述特征的组织。·产品:技术。如果公司业务发展主要依赖于技术的研发——这里的技术不管是实际销售的产品,还是用来销售其他产品的技术——那么它们就是科技公司。·环境:极度不确定。创业公司就是在极度不确定的条件下创造新产品或服务的人类组织。·目标:大幅增长。创业公司唯一必不可少的东西就是增长,其他和创业相关的所有东西都是伴随着增长而来的。·运作模式:探索。创业公司并不知道什么样的产品能在市场中立足,所以公司的主要注意

2023-01-22 14:05:09 402

原创 django建立项目脚手架

更新包管理工具并安装Django环境(系统终端执行)pip3 install -U pippip3 install django==2.2.13检查Django环境并使用django-admin命令创建Django项目django-admin --versiondjango-admin startproject {{项目名称}}用PyCharm打开创建好的Djang项目,并为其添加虚拟环境下图展示了Django版本和Python版本的对应关系,请大家自行对号入座。Django版本

2021-12-02 16:52:48 1206

原创 django项目配置数据库

虚拟环境中安装连接MySQL数据库所需的依赖项pip install mysqlclient修改项目的settings.py文件,DATABASES = { 'default': { # 数据库引擎配置 'ENGINE': 'django.db.backends.mysql', # 数据库的名字 'NAME': 'vote', # 数据库服务器的IP地址(本机可以写localhost或127.0.0.1)

2021-12-02 16:51:48 2359

原创 neo4j初体验

文章目录Neo4j简介1. 什么是图数据库?图图数据库2. 为什么要使用图数据库?优点应用场景3. 什么是Neo4j概念关系模型转图模型的几个原则4. Cypher语法`CQL`与`SQL`对比全景-关系图谱现状已同步的数据信息数据同步方式当前的问题解决方案Neo4j原理集群架构书签数据结构Neo4j简介1. 什么是图数据库?图  生活中经常用到“图(Graph)”这个词。其含义很有可能与图数据库里的图不同。事实上,大多数人当谈论到图时会想到:饼图(pie charts)、柱状图(bar chart

2021-12-02 16:43:31 467

原创 neo4j两种同步数据方式

文章目录apoc方式同步jdbc1. call apoc2. 步骤neo4j-import方式全量同步1. 导出csv文件2. 执行import命令3. 切换数据库,修改配置文件conf/neo4j.conf4. 重启neo4japoc方式同步jdbc1. call apocCALL apoc.load.jdbc('jdbc:mysql://172.16.4.83:3306/ibmp?user=ibmp_test&password=XZdfjXIEsrumGrfFTmfltbtAuQCECU

2021-12-02 16:29:27 2310

原创 Python+Flask+Docker+Vue实现简单的股票数据统计

代码地址:https://github.com/chenzhaoplus/qty_finhttps://github.com/chenzhaoplus/qtyfinDockerfileFROM python:3.8COPY /app/ /app/RUN pip install -r /app/requirements.txtWORKDIR /appCMD ["python", "qty_fin.py", "runserver", "9999"]生成docker镜像...

2021-08-11 19:02:47 655 1

原创 ListActivit运用BaseAdapter的例子,关键是getView方法怎么写。

public class MultipleItemsList extends ListActivity { private MyCustomAdapter mAdapter; @Override public void onCr

2011-07-05 10:43:23 699

原创 Android 对话框(Dialog)大全 建立你自己的对话框

Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog

2011-06-25 17:42:00 356

原创 Android UI:ListActivity & ListView

ListActivity        ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,只要我们设置了数据源,就会自动地显示出来。 使用custom view for screen layout        虽然ListActivity内置了ListView对象,但我们依然可以使用custom view,通过在on

2011-06-22 14:43:00 615

原创 Android-Adapter应用总结

5月20日Android-Adapter应用总结http://hi.baidu.com/blue_hmq/blog/item/03baf6ca02cf1614bf09e663.html首先来看一下Adapter的体系结构:一个Adapter的对象扮演一个桥梁的角色。这个桥梁连接着一个AdapterView和它所包含的数据。Adapter提供了一个通到数据项的

2011-06-22 10:46:00 539

原创 Java中抽象类与接口的区别

以前面试时被多次问到,仔细想想确实是个值得问的问题。覆盖了面向对象,多态和一些编程中的现实问题。今天在设计几个类关系时就遇到了使用抽象类还是使用接口的问题。想了一下,写下了自己对这个问题的理解。如果你还不确定这两者的区别,请认真读完本文。我不保证我写的透彻,但是这个问题你一定得弄明白。看我写的不明白没关系,你可以再去百度一下。弄明白这个问题很有必要!抽象类并不是对某个实际对象的描述。抽象类

2011-06-17 17:47:00 416

原创 有关Android线程的学习

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 /* Style Def

2011-06-08 15:52:00 299

原创 详解Android首选项框架的使用

首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个优雅的首选项界面。首先,我们来看下面这款软件的首选项界面:这款软件使用了好几种类型的首选项,每一种首选项都有其独特的用法,下面我们来了解一下几种常见的首选项:Ch

2011-06-07 09:21:00 556

原创 在Windows系统上安装与使用Android NDK r5

一、 Android NDK r5安装1、 cygwin的安装和简单配置① 首先到http://www.cygwin.com下载setup.exe ,接着建立安装目录,如X:/cygwin (我用的是 E:/cygwin ) ,将setup.exe放到此目录。② 启动安装:BEGIN-> 点击setup.exe:③ Next->选Install from Internet(选择在线安装方式):④ Next->填写Root Directory,如X:/cygwin(选择安装路径):⑤ Next->填写Lo

2011-05-25 14:52:00 408

原创 JDK环境变量的设置

eclipse 是不要环境变量的 JDK才要JDK环境变量如下:java_home = c:/Program Files/Java/jdk1.6.0_10------jdk安装路径classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;path = %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

2011-05-25 14:39:00 247

原创 Android手机从服务器更新软件到手机本地

package com.altersoft.FoodMisClient;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java

2011-05-14 20:28:00 899 1

原创 java保留两位小数

java保留两位小数问题:方式一:四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 保留两位小数 ---------------------------------------------------------

2011-05-03 10:34:00 860

spring boot + maven + mybatis + layui

spring boot + maven + mybatis + layui springboot 框架

2019-05-06

spring boot 入门项目

spring boot 入门项目

2019-05-06

W3CSchool.chm

W3CSchool工具书,可以离线查看,chm格式,绝对好用!!

2013-05-04

Hibernate Api中文文档

Hibernate Api中文文档教程,使用hibernate的好帮手。

2013-02-25

jasperreports所有依赖的jar包

jasperreports类库支持java开发报表

2013-02-19

jasperreports4.5.0所有jar包

jasperreports核心jar包,java开发报表库

2013-02-19

Java1.6_jdk_api

jdk1.6开发的api查询文档,chm格式,支持搜索关键字,用起来很方便。

2011-11-23

Android源代码

android系统是个开源的系统,所以如果能查看系统源代码,可以达到自己想要系统却没有的效果。

2011-09-29

pdf文档编辑器(PDFEditPortable)

pdf文档编辑器(PDFEditPortable),用来编辑pdf格式的文档。这是个绿色版的。

2011-09-29

GOF设计模式

设计模式是每个程序员必须掌握的编程思想,是学习编程的进阶资料。

2011-09-29

Android反编译工具

Android反编译工具,java语言完美恢复,xml文件代码重现

2011-09-29

android in action

android in action学习android的书籍,英文版的。

2011-08-10

Fat Jar(Eclipse打包插件)

eclipse打包插件,解压后放入eclipse文件夹覆盖就可以了。打包项目文件很方便。1.解压得到plugins文件夹复制到eclipse文件夹 2.点文件》导出》其他》Fat Jar Explorer 3.完成 安装后,可以在 [Export] 向导里找到 "Build Fat-JAR",然后根据提示即可完成打包。 打包完成之后,可以直接通过java -jar 执行打包好的jar文件,不需要设置classpath,以及配置其他jar文件。 ------- 搜索的

2011-05-11

大话企业级android开发全集(415页)

大话企业级android开发全集(415页),开发android手机系统入门级教程

2011-05-10

Visual C#图像处理程序实例.pdf

Visual C#图像处理程序实例,包括graphics,pen,brush等绘图工具的介绍

2011-04-30

高一凡数据结构算法实现

高一凡数据结构算法实现,用C,vc++实现

2011-04-30

严蔚敏数据结构全部代码实现(c语言)

严蔚敏数据结构全部代码实现,严蔚敏经典教材用C语言实现全部数据结构算法。

2011-04-28

jpg格式转ico格式工具

可以实现各种图片格式的转换,jpg,bmp,pgn,gif等格式转换成ico格式

2011-04-28

c++面向对象程序设计教程

c++面向对象程序设计教程,介绍了C++语言的语法知识

2011-04-27

嵌入式linux教程

嵌入式是个很热门的技术,手机等移动设备都会用到。

2011-04-27

eclipse3.6汉化文件

将文件夹 "language"下"eclipse"文件夹中的"features"和"plugins"两个文件夹复制并粘贴到文件eclipse的安装目录中(E:\eclipse\ 目录下); 在弹出的对画框中选择"全部"(覆盖文件eclipse安装目录中(E:\eclipse\文件夹下)原有的"features"和"plugins"两个文件夹).

2011-04-26

EclipseME(j2me手机开发插件)

java有三个开发平台,j2ee(企业版),j2se(标准版),j2me(移动版).手机游戏和手机程序的开发在j2me中实现。eclipseme插件可以集成到eclipse中。

2011-04-26

Apache Poi(java读写excel文件的api)

java读写excel文件比较麻烦,apache公司写了一个jar文件用于提供读写excel文件的api,方便了编程。具体用法可以在我的CSDN博文中找到。

2011-04-26

C#网络编程初探(PDF格式)

C#网络编程初探,介绍了C#网络编程的一些应用,包括套接字,TCP和UDP的连接等等。

2011-04-24

五子棋双人对战小游戏

五子棋双人对战,采用C#语言,VS2005编译工具编写的小游戏。

2011-04-22

VB的API大全(完整版)

VB的API大全VB的API大全VB的API大全VB的API大全VB的API大全VB的API大全VB的API大全VB的API大全

2010-03-29

中华学生百科全书:电脑常识

中华学生百科全书:电脑常识中华学生百科全书:电脑常识中华学生百科全书:电脑常识中华学生百科全书:电脑常识中华学生百科全书:电脑常识中华学生百科全书:电脑常识

2010-03-29

王爽汇编语言 PDF格式

王爽汇编语言 每章都有实验练习 初学者的优秀教材

2008-09-05

Windows环境下32位汇编语言程序设计(第2版)

win32汇编编程 涉及WINDOWS系统原理 API调用 16位和32位汇编等知识

2008-09-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除