- 博客(47)
- 资源 (2)
- 收藏
- 关注
原创 问题记录:idea maven 打包报错 �÷�: javac <options> <source files>
问题记录:idea maven 打包报错 �÷�: javac <options> <source files>
2023-02-17 16:11:27
545
原创 java实现的非关系型数据库:nosqldb
nosqldb是一个用Java实现的基于文件存储的 非关系型数据库管理系统,由个人开发者mabo独立开发nosqldb 将不同表的数据保存在不同的目录下,而不是将所有数据放在一个大仓库内,这样就增加了查询速度并提高了灵活性data.nosqldb存储数据index.nosqldb存储索引如下图所示nosqldb无需对表结构进行定义,即无需创建表就可以进行数据库操作。
2023-01-05 18:42:04
1149
3
原创 java实现数据库:mbdb-基于文件存储的关系型数据库
mbdb数据库目前只有表的概念,所有的操作都是基于表进行操作mbdb支持json格式对表结构进行定义,添加数据之前需要首先定义表结构。表结构文件存储的是表结构的json字符串。
2022-10-01 09:32:39
1778
原创 RestHighLevelClient实现搜索引擎
海量数据的情况下,SQL中的模糊查询%s%会导致索引失效,但是业务场景需要根据某些字段进行查询。搜索引擎会为数据添加索引,并且支持模糊查询,范围查询,精确查询所以海量数据的全文搜索,最好是用搜索引擎来进行实现。以下是开源搜索引擎elasticsearch的 RestHighLevelClient简单工具实现,添加数据获取数据全部使用json操作。
2022-08-24 23:06:56
637
原创 一个注解替换synchronized关键字:分布式场景下实现方法加锁
单机部署场景下,当我们需要锁住少量代码块或者方法,通常会使用synchronized关键字进行加锁,如下所示} }但是,在分布式场景下,由于jvm之间无法通信,一个服务是无法感知另外一个服务对当前代码快加锁。该demo实现了分布式场景下,使用一个注解,对方法进行加锁。单机也可以使用。...
2022-08-03 18:25:33
568
原创 SpringBoot单机和分布式(RocketMQ解决)WebSocket聊天室
HTTP 协议有一个缺陷:通信只能由客户端发起。HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。因此,出现了 WebSocket。.........
2022-08-02 19:31:28
3074
原创 SpringBoot如何优雅的处理所有的异常接口返回值为JSON
当调用接口后,执行的代码发生了异常,通常就会返回如下页面通过配置后,可以对所有的异常接口进行处理,返回如下的Json返回子更加美观,也方便查找错误格式化后。
2022-07-24 22:45:57
771
原创 Java并发编程12种锁的具体实现方式
Java12种锁的具体实现方式synchronized(常用)Locklock,unlocktrylockReadAndWriteLock(读写锁)Atomic(i++操作)LongAdder(Atomic的优化)CountdownLatch(门闩)Exchanger(线程交换数据)Locksupport(类似于lock)Phaser (过程中,锁部分线程)CyclicBarrier(循环栅栏)Semaphore(限流)Unsafe(操作内存实现线程安全-不推荐)synchronized(常用)使用J
2022-07-24 16:54:35
1908
原创 一个注解实现方法返回数据写入缓存(切面、Redis实现)
底层采用redis来进行存储,用有超时时间的set方法来存储。采用切面的方式,对方法进行动态代理,一共分为两种情况。先去缓存中读取该方法的返回值,如果为空,则执行方法。TimeUnit超时时间的单位。timeOut超时时间。不为空,直接返回缓存数据。valuekey值。.........
2022-07-21 21:54:12
563
原创 使用一个注解实现SpringBoot接口限流(Redis、反射、切面实现)
sentinel的限流功能非常强大,但是单机springboot如何实现简单的接口限流。这篇文章将告诉你如何用一个注解@BlockHandler,就可以将你的接口通过切面的方式实现限流。
2022-07-18 21:21:06
1283
2
原创 使用两个注解,三步完成SpringBoot事件监听(反射,切面实现)
当某个事件需要被监听的时候,我们需要去做其他的事前,最简单的方式就是将自己的业务方法追加到该事件之后。但是当有N多个这样的需求的时候我们都这样一个个去添加修改事件的源码吗?这篇文章将告诉你如何用一个注解,就可以将你的业务代码通过切面的方式添加到事件的前后,而不需要修改事件的代码。.....................
2022-07-16 17:27:25
918
原创 利用切面、注解、反射实现SpringBoot的事件监听
当某个事件需要被监听的时候,我们需要去做其他的事前,最简单的方式就是将自己的业务方法追加到该事件之后。但是当有N多个这样的需求的时候我们都这样一个个去添加修改事件的源码吗?这篇文章将告诉你如何用一个注解,就可以将你的业务代码通过切面的方式添加到事件的前后,而不需要修改事件的代码。..................
2022-07-15 22:08:37
972
1
原创 三步完成SpringbootWeb项目使用自定义注解
开发中我们可能要在spring项目中使用自定义注解来完成额外的业务模块,该demo将展示如何适应AspectJ,用切面的方式,使用自定义注解
2022-07-14 16:20:41
279
原创 ThreadLocal线程安全示例及其原理
线程安全是多线程编程时的计算机程序代码中的一个概念。 在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。...
2022-07-10 15:13:50
4879
原创 毕设:基于Vue+Socket+Redis的分布式高并发防疫健康管理系统
摘要: 疫情期间,校园疫情上报线上压力大,使用频繁。像校园疫情上报该类型并发量较高,访问频繁的系统需要进行快速响应。传统的系统并发量低,无法在这种情况下满足用户的使用需求。本系统采用BS架构,客户端维护简单。系统采用前后端分离,前端PC和移动端分离,后端分布式部署,既可以提高访问速度又能提升系统稳定性,在遇到个别服务器出现异常情况下,仍然可以保证用户正常使用。............
2022-06-01 10:43:51
1099
原创 邮箱发送邮件(包含附件,网易、QQ)
QQ邮箱发送邮件package email;import com.seeyon.ocip.exchange.exceptions.BussinessException;import java.io.File;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import java.util.Properties;import javax.activatio
2022-03-05 01:01:58
748
原创 设计模式(Java)
设计模式单例模式饿汉模式懒汉模式枚举实现单例模式工厂模式优快云博客地址 https://blog.youkuaiyun.com/weixin_47053123Github项目下载地址https://github.com/MaBo2420935619单例模式饿汉模式像一个饿汉一样,不管需不需要用到实例都要去创建实例,即在类产生的时候就创建好实例,这是一种空间换时间的做法。作为一个饿汉而言,体现了它的本质——“我全都要”。对于饿汉模式而言,是线程安全的,因为在线程创建之前实例已经被创建好了。代码演示
2021-12-10 16:01:51
300
原创 【设计模式七大原则及Java示例】
设计模式总结及Java示例设计模式七大原则单一职能原则接口隔离原则倒转置换原则里氏替换原则合成/聚合复用原则开闭原则迪米特法则单例模式工厂模式优快云博客地址 https://blog.youkuaiyun.com/weixin_47053123Github项目下载地址https://github.com/MaBo2420935619设计模式七大原则单一职能原则单一职责原则(Single Responsibility Principle) SRP单一职责原则好处降低类的复杂性 每个类实现单一职责,
2021-12-04 22:06:24
348
原创 基于SpringBoot和Redis:Redisson的分布式锁的使用
为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLcok或synchronized)进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,为了解决这个问题就需要一种跨JVM的互斥机制来控制共享资源的访问,这就是分布式锁要解决的问题。基于SpringBoot和redis,rediss
2021-11-29 19:51:38
911
原创 用java实现纯注解Spring框架的部分内容(包括IOC,AOP,定时器,javaWeb)
用Java实现纯注解Spring框架[包括IOC,AOP,定时器,javaWeb后端]前言一、源码下载地址(github)二、IOC--源码及其实现原理1、IOC(依赖注入)的全过程1、IOC(依赖注入)的全过程三、AOP--源码及其实现原理四、定时器--源码及其实现原理五、JavaWeb(类似SpringBoot)--源码及其实现原理六、如何使用该框架总结前言提示:以下是本篇文章正文内容,下面案例可供参考一、源码下载地址(github)二、IOC–源码及其实现原理1、IOC(依赖注入)的
2021-11-03 22:59:27
171
原创 java读取配置文件工具类
如何读取下方配置文件并且向其中传入参数:执行成功的截图使用改工具类的方法:public static void main(String[] args) { PropertyUtil properties=new PropertyUtil(); Map<String,String> map=new HashMap<>(); map.put("tableName","user"); map.put("id","10
2021-10-17 11:16:20
340
原创 java的生成excel文件工具类
package com.mabo;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Test { public static void main(String[] args) {
2021-10-13 20:51:43
609
原创 vue+socke+redis(可选用)前后端分离:学校疫情上报系统
vue+socke[可选用] 前后端分离:学校疫情上报系统一、项目技术栈介绍1. 前端2.后端二、项目演示及其功能介绍登录注册登录成功管理员页面教师页面学生页面控制台页面三、测试说明四、开发说明五、项目下载一、项目技术栈介绍1. 前端前端采用vue框架。为了美化也采用了elementUI组件页面跳转使用vue路由与后端通信采用axios通信2.后端服务器与数据库交互的中间件使用redis(不使用除了访问速度变慢无其他影响)redis采用集群模式但同时支持一个redis服务器与前
2021-09-21 16:11:16
862
原创 Java对Redis集群部署工具类(单个Redis服务器同样适用)
Java对Redis集群部署工具类(单个Redis服务器同样适用)前言注意一、Redis集群化部署工具类源码二、使用步骤1.引入库2.读入数据总结前言在高并发的前提下,频繁的对数据库访问IO操作会增加数据库负担。Redis中间件可以完美的解决这个问题。我们可以将经常需要读取但是不经常变化的一些数据放入到Redis中,因为读取的时候是向内存中读取数据,可以大大减少运行和等待时间。有效的减少数据库的IO操作,从而提高系统运行的效率。注意Redis集群化部署的时候,一个value值会根据ke
2021-09-06 09:39:48
411
原创 自定义的日志输出到文件的日志工具类
自定义的日志输出到文件的日志工具类在进行一些代码编写的时候,不是所有的情况都会正常执行。将信息写入文件中可以将信息永久保存并且不会丢失,而且更加方便开发进行测试并且该工具类依赖的都是JDK的类库,无需添加其他jar包不要再用System.out来输出信息了自定义的日志输出到文件的日志工具类先看效果提示如何使用源码先看效果提示输出日志的文件夹会读取系统当前时间,如果当前时间为名称的文件夹不存在将会自动创建,保存日志信息的位置在该文件夹下,命名为当前时间的小时(24小时制)。若当前文件不存在,将
2021-08-28 22:21:59
236
原创 常用数据库的数据源配置和驱动maven依赖
前言这里列举了常用的三个数据源的配置MySQLSQL serverOracle<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.spr
2021-08-16 11:39:20
559
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人