![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 66
炎黄子孙__
星辰大海
展开
-
web-flash的登录验证与权限管理
该项目是一个很好的Springboot开源项目,从中我们能学习到很多东西,本文将着重讲解web-flash是如何实现后端登录验证与权限管理的项目采用的方案:JWT + Session + Shiro。原创 2023-03-26 17:39:57 · 630 阅读 · 0 评论 -
Nacos 集群一直报Nacos is starting...
我使用Docker-compose部署的,然后Nacos一直报这个,就是没启动成功。后来我发现是虚拟机内存不够用,我把虚拟机内存改到了 3g然后创建容器时加入了环境变量JVM_XMS=512m、JVM_XMX=512m、JVM_XMN=256m。原创 2023-02-23 20:07:35 · 1668 阅读 · 0 评论 -
刷题分析工具
前些天刷高数题的时候,往往需要分析题目是否需要重新做,所以我做了一个工具专门用于进行这类的分析。原创 2022-06-25 16:06:55 · 228 阅读 · 0 评论 -
深度解读基于commons-compress解压文件——7z与常规解压
java解压文件的方式有很多种,Apache官方提供了一个工具,可以用来解压很多类型的文件。该工具可以解压和压缩带密码的7z文件,并支持ar, arj, cpio, dump, tar, zip 等文件的压缩和解压。本文将带你深入common-compress底层来探究底层是如何解压文件的。原创 2022-04-05 17:42:37 · 6085 阅读 · 0 评论 -
springcloud+zookeeper 的服务发现与服务集群的搭建方式
使用Zookeeper 代替 Eureka 实现服务注册、服务发现、服务集群的功能原创 2022-03-06 22:59:11 · 637 阅读 · 0 评论 -
springMVC+mybatis的文件上传与下载
前言这些资料我查了半天,结果最后是我自己尝试出来的一套方案如果你想要把文件直接存储到mysql数据库中,可以使用我这一套方案。或者你可以把文本文件用base64编译以后再存储到数据库中首先要注意数据库的格式!①TinyBlob类型 最大能容纳255B的数据②Blob类型 最大能容纳65KB的③MediumBlob类型 最大能容纳16MB的数据④LongBlob类型 最大能容纳4GB的数据文件上传前端前端我使用的是elementUI+Vue注意,要是用el-upload自带的上原创 2021-09-08 10:38:18 · 456 阅读 · 1 评论 -
java手写队列和栈(数组实现,自动扩容)
1 简介队列:先进先出栈:后进先出栈是比较好实现的,队列实现起来有点麻烦2 栈不保证线程安全,如果想要线程安全,可以在所有方法前加synchronized动态扩增的原理:当数组满的时候,自动创建新的数组,并把原数组的内容复制到新数组中。package data.structure.stack;/** * 数组实现栈结构 * 要求: * 1.实现动态扩增 * 2.后进先出 * @Author :吴用 * @Date :2021-01-20 19:20 * @Versio原创 2021-01-20 21:43:18 · 479 阅读 · 0 评论 -
JAVA 使用JNI与C++交互的详细过程
1 简介网上有很多教程,但是很多都没有一个完整的实例,我在学习的时候,踩了不少坑。我们使用JNI的目的,无非就是想要用调用C++的接口,并且最好JAVA也能为C++提供一个接口(用于回调),这两个目的都很重要。尤其后面那个目的,如果要实现异步操作,那么java必须能给C++提供接口2 类型的映射关系JNI 它通过类型映射,把JAVA中的基本数据类型,映射到了C++中,这个映射关系记录在了jni.h文件里(该文件在JDK根路径/include下)所以,在C++中,为了兼容JNI,你要尽量使用j原创 2021-01-18 22:21:58 · 6034 阅读 · 4 评论 -
使用 java 手写事件驱动模型
1 介绍本文将手写一个事件驱动的模型案例。事件驱动:EventManager 事件管理者单独运行一个线程,循环遍历事件队列(阻塞队列)。内部有一个Map集合,用于存放事件和用户之间的关系。当事件产生后,事件会被放置到阻塞队列中,而EventManager的子线程就会获取到该事件的相关信息,并提醒与之相关的用户,执行响应的方法Event 事件事件的具体内容,可以有四部分组成。事件的来源、事件的目标、事件的种类、事件的消息。 对一个事件而言,知晓事件的种类是必要的,其他数据可以不给定。原创 2021-01-07 23:50:44 · 249 阅读 · 0 评论 -
springboot2.x 的骚操作——解决运行顺序以及Bean对象注入顺序的问题
通过指定接口,重写指定方法,可以在Bean对应的生命周期方法中执行相应的程序本文将分析几个Bean对象,为它们设置优先级(通过@Order),然后再打断点调试,测试各种生命周期方法的运行的顺序在项目当中最让人头疼的就是bean对象不被注入的问题,通过本文,你可以很好的解决这个问题。原创 2021-01-05 10:21:31 · 549 阅读 · 3 评论 -
反射的使用与动态代理
1 简介* JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。* 注意,Class.forName(“全限定类名”) 会对类进行加载,会执行类中的静态代码块2 反射的基础用法2.1 通过反射构造对象try { // 空参构造 Class clazz = Class.forName("pojo.Country"); Country c原创 2020-11-22 01:04:50 · 144 阅读 · 0 评论 -
java的线程安全问题总结
1 简介看本文前,请先了解 JMM,本文大部分参考《JAVA并发编程实战》本质原因:某一个线程在观察和修改一个变量的过程中,另一个线程修改了变量的值,导致本线程的观测结果无效,进而使得计算结果无效,所以本线程修改变量会出问题。2 示例问题:如果有两个线程同时使用了这个函数,则a的结果在每次程序运行后,结果都不一样!原因:a++分为三步,1)从内存中提取a的值;2)计算a+1;3)修改a的值。如果线程1观测了a的值后,线程2修改了a的值。此时,线程 1观测的结果无效,导致计算结果是错误的原创 2020-11-14 18:07:01 · 163 阅读 · 0 评论 -
java使用RXTX的详细总结
1 简介项目要求:读取串口信息,并输出展示相应的图像,本篇文章不深入谈前端的内容着重于后端遇到的问题。2 开发阶段2.1 RXTX包的使用1)下载该包2)由于手动导入的时候我遇到了点问题,所以选择先将 RXTXcomm.jar 导入到本地仓库,然后在maven项目中引入手动导入的指令mvn install:install-file -DgroupId=gnu.io -DartifactId=rxtx -Dversion=2.1.7 -Dpackaging=jar -Dfile=“G:\迅雷下原创 2020-09-05 12:03:42 · 9346 阅读 · 15 评论 -
JDBC操作SQLite的工具类(已经对操作进行了很大程度的简化)
1 简介SQLite 作为数据库特别小,Android系统中自带,Windows中使用也特别方便。2 工具类2.1 ResultSetMapperpackage com.wu.port.utils.sqlite;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.sql.ResultSet;import java.sql.ResultSetMetaData原创 2020-09-03 16:53:18 · 578 阅读 · 0 评论 -
shiro SecurityUtils.getSubject().getPrincipal()得到null 的解决方法
1 问题的由来自定义的Realm 继承 AuthorizingRealm ,本想在doGetAuthenticationInfo 认证方法中通过Object o = SecurityUtils.getSubject().getPrincipal() 得到前端传来的信息的,然后通过instanceof 判断 o 的到底是什么类,来判断到底是用户登录还是管理员登录。结果发现SecurityUtils.getSubject().getPrincipal() 得到的是null2 解决方法采用装饰类的思路解决原创 2020-08-14 22:49:53 · 9141 阅读 · 3 评论 -
Tomcat 配置全局错误页的注意事项
1 web.xml在Tomcat的conf文件夹下的web.xml文件中根元素下添加以下内容,分别对应错误代码号和错误的网址,建议把错误网页放置在ROOT目录下。这样就直接可用’/'前缀指定该网页了。 <error-page> <error-code>400</error-code> <location>...原创 2020-04-22 11:16:46 · 1002 阅读 · 0 评论 -
java 动态代理的方法及其缺陷
本文部分原创,大部分为黑马程序员课程的提炼1 动态代理简介特点:字节码随用随创建,随用随加载作用:不修改源码的基础上对方法增强,在此过程中会建立一个新的类对象。分类:基于接口的动态代理、基于子类的动态代理2 基于接口的动态代理: 涉及的类:Proxy 提供者:JDK官方创建代理对象的要求:被代理类最少实现一个接口,如果没有则不能使用,新建的对象必须为接口。如何创建代理对象...原创 2020-04-11 23:29:48 · 535 阅读 · 0 评论 -
Java思想1——简单工厂模式
本文内容基于《大话设计模式》——程杰,建议大家读读原著1 我们要考虑什么?1)为了提高程序的可维护性,需要对各个模块之间进行解耦,要让它们之间的关联尽可能地小。避免修改其中一个模块的时候,需要对另一个模块大动干戈。2)前端与后端要尽可能地分离解耦,原因还是与1)相同,提高程序的可维护性。前端是程序展示在用户面前的界面,而后端是每一个按钮或者是效果的具体实现。3)对于前端的校验。这一块是基于...原创 2020-03-07 15:48:16 · 193 阅读 · 0 评论 -
Android 教你如何写蓝牙程序2——获取目标信息
上文讲解了如何启动蓝牙功能。现在我们已经启动了蓝牙功能,接下来要做的是获取要连接的对象的蓝牙信息。上文连接:https://blog.csdn.net/qq_43851684/article/details/1042364231 获取已存储的蓝牙连接对象我们先将简单的,现在单纯要获取已存储的蓝牙连接对象信息。//获取蓝牙适配器BluetoothAdapter mBluetoothAdap...原创 2020-02-11 12:55:49 · 675 阅读 · 1 评论 -
Android 教你如何写蓝牙程序1——消息传递、启动蓝牙
参考资料:蓝牙的资料:Android 蓝牙开发(1)Android 蓝牙开发(2)Android 蓝牙开发(3)Android的消息传递机制Android的消息机制(一)Android的消息机制(二)...原创 2020-02-10 19:40:17 · 3272 阅读 · 0 评论 -
Java基础1.2.2——jar包中的MANIFEST.MF
该文件记录了jar包的重要信息例子Manifest-Version: 1.0Created-By: Apache Ant 1.5.1Extension-Name: Struts FrameworkSpecification-Title: Struts FrameworkSpecification-Vendor: Apache Software FoundationSpecificat...转载 2020-01-01 22:15:15 · 301 阅读 · 0 评论 -
Java基础1.2.1——运行程序与打包
1 利用cmd运行程序打开代码编辑器,把上面的代码添加进去;把文件名保存为:HelloWorld.java;打开 cmd 命令窗口,进入目标文件所在的位置,假设是 C:在命令行窗口输入 javac HelloWorld.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行(假设环境变量都设置好了)。再键输入 java HelloWorld 按下回车键就可以...原创 2020-01-01 22:13:08 · 162 阅读 · 0 评论