- 博客(273)
- 资源 (47)
- 收藏
- 关注
原创 Java如何自定义注解及在SpringBoot中的应用
注解分类(根据Annotation是否包含成员变量,可以把Annotation分为两类):标记Annotation:没有成员变量的Annotation;这种Annotation仅利用自身的存在与否来提供信息元数据Annotation:包含成员变量的Annotation;它们可以接受(和提供)更多的元数据;1.八大基本数据类型2.String类型3.Class类型4.enum类型5.Annotation类型6.以上所有类型的数组要创建自定义注解,从@interface关键字开始。
2024-07-09 22:42:19
1654
原创 聊聊消息队列,发送消息的4种方式
微服务开发中经常会使用消息队列进行跨服务通信。在一个典型场景中,服务A执行一个业务逻辑,需要保存数据库,然后通知服务B执行相应的业务逻辑。在这种场景下,我们需要考虑如何发送消息。
2024-07-04 22:20:14
1233
原创 Java与MySQL的数据迁移与同步及事务与性能抉择
1、数据迁移:数据迁移是将数据从一个数据库系统或存储设备移动到另一个数据库系统或存储设备的过程。在Java与MySQL的场景中,数据迁移通常指的是将数据从其他数据库(如Oracle、SQL Server等)迁移到MySQL数据库,或者在不同的MySQL数据库之间进行数据迁移。2、数据同步:数据同步是指在不同数据库系统或不同实例之间保持数据的一致性和实时性。在Java与MySQL的场景中,数据同步可以实现将MySQL数据库的数据与其他数据库或系统进行实时同步,确保数据的准确性和及时性。
2024-06-11 23:01:06
1204
原创 全栈工程师需要具备哪些技能?
成为一名优秀的全栈开发工程师需要具备扎实的前端和后端开发技能,熟悉数据库和数据存储,了解服务器和基础架构,熟练使用版本控制和协作工具,具备问题解决和调试能力,保持学习能力和对新技术的敏感性,具备项目管理和沟通能力,注重安全意识,并拥有解决问题的思维和创造力。从需求分析开始,到概要设计,详细设计,产品原型,页面切图,界面实现,服务端开发,数据库存取,应用发布及服务器管理,系统测试,运维售后等等。缺你不可,有你就行。了解常见的网络攻击和防御机制,编写安全的代码和应用程序,保护用户数据和系统的安全。
2024-06-01 00:16:58
2503
原创 架构师系列---RPC通信原理
RPC:Remote Percedure Call 远程过程调用定义了一台主机上的程序通过网络调用另外一台主机上的程序的子程序这一行为。RPC符合CS模型,可以实现进程间的通信,许多技术框架都是基于这种概念而实现RPC 的主要功能目标是让构建分布式计算(应用)更容易,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议规范,简单的来说就是像调用本地服务一样调用远程服务,对开发者而言是透明的。
2024-05-20 22:52:05
1339
3
原创 java导出txt文件列对齐
思路其实很简单,就是跟html画表格一样,考虑到表格中的每列的宽度都是固定的。那我们导出的时候也把每列宽度都固定不就行了吗。假设每列宽度最大为20个字符,那么我们就把这一列宽度设置为20个字符,不足20的用空格填充。最近做项目有一个需要用到导出txt文件的地方,内容大概就是一个把list数据类型格式的数据导出到txt文件,但是txt的排版是一个令人头疼的事情。计算字符的时候,由于发现在txt文件中中文占的宽度是英文字符的两倍,所以统计的时候要把中文宽度值记为2,英文为1,最后计算出要补充的空格字符。
2024-05-08 22:48:38
738
3
原创 The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisualvm.
jdk 1.8.0_361之后需要自行下载安装VisualVM。因此本文记录的核心解决办法就是:检查JDK版本是否在1.8.0_361之后是;就前往 https://visualvm.github.io 自行下载
2024-05-06 16:26:41
3332
原创 一文掌握 shell 语言
shell脚本(shell script) ,是一种为shell编写的脚本程序,一般后缀名为 .sh业界所说的shell 通常都是指shell脚本,但shell 和 shell script 是两个不同的概念。
2024-04-18 15:03:43
2161
原创 Linux Zookeeper 安装
1 何为伪集群模式在学习环境中,如果没有多余的服务器,这里就将三个ZooKeeper 节点都安装到本地机器上,故称谓伪集群模式。虽然,伪集群模式只是便于开发、普通测试,尽量不用于生产环境。从学习的角度来说,如果了解了伪集群模式下的安装和配置,生产环境下的安装和配置的方法,也是大致差不多的。安装ZooKeeper之前,需要规划一下伪集群节点的个数,ZooKeeper节点数有以下要求:(1)ZooKeeper集群节点数必须是基数。为什么呢?ZooKeeper 集群中,需要一个主节点,称之为lead
2024-04-12 09:25:20
1059
原创 MacBook苹果电脑安装JDK8、JDK11教程,配置环境变量 + 快速切换JDK版本
JDK8、JDK11和JDK21是Java开发工具包的不同版本,而JavaSE、JavaEE和JavaME是Java平台的不同配置和规范,用于不同类型的应用程序开发。本文主要为在MacBook苹果电脑系统下安装JDK及环境变量配置。按下ESC键盘 输入:wq 保存退出。终端窗口一般在 启动台-其他 文件夹里。在Oracle官网下载JDK。1.官网下载dmg安装包。
2024-03-16 15:48:23
3568
1
原创 spring开源项目总结
目前已集成——登录认证、权限认证、分布式Session会话、微服务网关鉴权、单点登录、OAuth2.0、踢人下线、Redis集成、前后台分离、记住我模式、模拟他人账号、临时身份切换、账号封禁、多账号认证体系、注解式鉴权、路由拦截式鉴权、花式token生成、自动续签、同端互斥登录、会话治理、jwt集成、Spring集成、WebFlux集成……大数据时代,了解etl是非常有必要的,现阶段国内比较受欢迎的离线数据同步工具,相对kettle来说,使用部署相对方便,不过kettle包含数据清洗的功能,自行选择食用。
2022-11-02 21:12:23
1147
原创 SpringBoot 接口数据加解密
xx项目有于安全问题,需要对接口整体进行加密处理,我们怎么处理呢。和产品、前端讨论需求后,梳理了相关技术方案,主要的需求点如下:尽量少改动,不影响之前的业务逻辑;考虑到时间紧迫性,可采用对称性加密方式,服务需要对接安卓、IOS、H5三端,另外考虑到H5端存储密钥安全性相对来说会低一些,故分针对H5和安卓、IOS分配两套密钥;要兼容低版本的接口,后面新开发的接口可不用兼容;接口有GET和POST两种接口,需要都要进行加解密;
2022-10-20 23:07:42
2296
原创 搞懂XXL-JOB任务调度平台
/doc :文档资料- /db :“调度数据库”建表脚本- /xxl-job-admin :调度中心,项目源码- /xxl-job-core :公共Jar依赖- /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目)
2022-10-11 22:02:14
3498
原创 0004:Spring Cloud Ribbon 中的 7 种负载均衡策略
Ribbon 是 Spring Cloud 技术栈中非常重要的基础框架,它为 Spring Cloud 提供了负载均衡的能力,比如 Fegin 和 OpenFegin 都是基于 Ribbon 实现的,就连 Nacos 中的负载均衡也使用了 Ribbon 框架。Ribbon 框架的强大之处在于,它不仅内置了 7 种负载均衡策略,同时还支持用户自定义负载均衡策略,所以其开放性和便利性也是它得以流行的主要原因。
2022-10-10 23:06:27
680
原创 0003:为什么创建线程池一定要用ThreadPoolExecutor?
线程池的创建方式总共分为两大类:手动使用 ThreadPoolExecutor 创建线程池和自动使用 Executors 执行器创建线程池的方式。其中使用 Executors 自动创建线程的方式,因为线程个数或者任务个数不可控,可能会导致内存溢出的风险,所以在创建线程池时,建议使用 ThreadPoolExecutor 的方式来创建。
2022-10-10 22:54:42
487
原创 0002:说一下线程池7个参数的含义
corePoolSize:核心线程数,线程池正常情况下保持的线程数,大户人家“长工”的数量。maximumPoolSize:最大线程数,当线程池繁忙时最多可以拥有的线程数,大户人家“长工”+“短工”的总数量。keepAliveTime:空闲线程存活时间,没有活之后“短工”可以生存的最大时间。TimeUnit:时间单位,配合参数 3 一起使用,用于描述参数 3 的时间单位。BlockingQueue:线程池的任务队列,用于保存线程池待执行任务的容器。
2022-10-09 21:33:51
313
原创 0001:List去重的6中方法?
本文我们介绍了 6 种集合去重的方法,其中实现最简洁,且去重之后的顺序能和原集合保持一致的实现方法,只有两种:LinkedHashSet 去重和 Stream 去重,而后一种去重方法无需借助新集合,是我们优先考虑的去重方法。
2022-10-09 21:09:47
213
原创 阿里巴巴的26款超神Java开源项目
1.分布式应用服务开发的一站式解决方案 Spring Cloud AlibabaSpring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。地址:https://
2022-01-12 22:07:32
418
原创 pom文件引用
pom文件?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0
2021-12-27 20:29:04
1738
原创 Docker的安装
本案例以Centos8为例,在Centos8中安装docker,需要系统为64位,也内核版本位3.10以上查看系统信息:$ lsb_release -a如果出现‘lsb_release: command not found’ 情况,请先执行安装命令yum install -y redhat-lsb查看内核版本$uname -r使用yum 安装docker$yum - y install docker使用官方脚本安装$curl -fsSL https://get.docker.
2021-12-17 23:28:42
510
原创 EasyExcel,让excel导入导出更加简单
EasyExcelEasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。github地址:https://github.com/alibaba/easyexcelJAVA解析Excel工具EasyExcelJava解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Ex
2021-11-09 23:05:15
438
转载 SpringBoot+Redis解决海量重复提交问题
一、前言在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段:1、数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据。2、token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删除token,下次请求再次判断token。
2021-11-09 23:04:30
209
转载 限流:计数器,漏桶,令牌桶,三大算法的原理与实战
https://www.cnblogs.com/crazymakercircle/p/15187184.html限流限流 是面试中常见的面试题。为什么要限流简单来说限流在很多场景中用来限制并发和请求量,比如说秒杀抢购,保护自身系统和 下游系统不被巨型流量冲垮等。以微博为例,例如某明星公布了恋情,访问从平时的50万增加到500万,系统的规划能力,最多可用支持200万访问,那么就要执行限流规则,保证是一个可用的状态,不至于服务器崩溃,所以请求不可用参考链接系统架构知识图谱(一张价值10w的系统架
2021-09-26 21:58:47
1018
1
原创 电商推荐系统理论
Scala安装Anaconda安装Jython安装PyCharm 安装Pythonanacoda pycharm scala推荐系统首先要有数据》二维矩阵SparkFlink
2021-08-11 22:04:57
115
原创 MySql中drop、truncate和delete的区别?
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。TRUNCATETABLE则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。(2)表和索引所占空间。当表被TRUNCATE后,这个表和索引所占用的空间会恢复到初始大小,删除内容、释放空间但不删除定义DELETE操作不会减少表或索引所占用的空间。删...
2021-06-22 22:03:07
165
原创 Java项目中常用的文件定义
1.定义常量/** * * 需要在代码中不变的一些值,定义在这里 * */public class Constants { //应用程序名字 public static final String APP_NAME= "互联网"; //开发地址 public static final String DEV_URL= "http://";}2.定义枚举类(1)//使用场景:一般有几个值供选择的时候用枚举public enum ErrorRetCo
2020-12-21 00:25:50
317
1
原创 apollo-quick-start-1.7.1 启动失败
快速开始步骤:https://github.com/ctripcorp/apollo/wiki/Quick-Start改动的地方:启动的时候会报错:如下:# apollo config db infoapollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?serverTimezone=Asia/Shanghaiapollo_config_db_username=rootapollo_config_db_password=
2020-12-19 23:47:55
1244
1
转载 常用的 9种分布式ID生成方式?
一,为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个..
2020-08-21 16:53:30
559
原创 Windows 7 下如何查询某个端口号所在进程,并根据端口号杀掉进程?
在我们写项目的时候,总是出现端口被占用的问题,现在就以下为例说明;如何查询某个端口号所在进程,并根据端口号杀掉进程?步骤如下:第一步: 打开cmd命令窗口,输入命令,根据端口号查找对应的进程号:netstat -ano | findstr 10086//列出进程极其占用的端口,且包含 10086结果如下:发现 10086 端口被pid 为 19788 的进程占用第二步:根据进程号寻找进程名称:tasklist | findstr 19788第三步:用命令杀死该程序
2020-08-20 22:16:26
551
原创 IDEA中启动多个微服务如何开启Run Dashboard管理?
关于微服务架构项目,关于启动方式,记录一下:开启Run DashBoard1.使用Run Dashboard的好处:使我们配置的项目可视化,一眼看到底,方便spring boot项目重新配置、Run、Debug,简化了我们的操作步骤。2.如何配置自动启动 Run DashBoard找到项目下面的 .idea 下面的workspace.xml文件,如下图所示:在下面的代码中加入一段配置代码,源代码位置: <component name="RunDashboard"&g
2020-08-20 21:56:39
1145
1
原创 Java==POI报表详解
一.POI报表在企业开发中,Excel报表是一种最常见的报表需求,Excel报表开发一般分为两种形式:(1)为了方便操作,基于Excel的报表批量上传数据(2)通过java代码,快速生成Excel报表POI报表简介:Apache POI是Apache软件基金会的开源项目,由Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java语言操作Microsoft Office的功能。Excel分为两个大的版本Excel2003和Excel2007及以.
2020-06-22 21:57:38
1102
原创 SSM=Maven构建项目以及Maven分模块构建项目
一.软件开发常识(1)项目开发流程1. 立项 项目可实施性分析:(某项目)100W项目,开发周期预计6个月,需要10人,运营(人力)成本2W/人 产品经理入住银行,进行需求调研《需求设计说明书》 需求研讨会:团队所有成员参加2. 设计 UI/UE工程师:《页面原型》 架构师:统一开发环境,项目技术选项,项目架构设计,数据库设计等等《概要设计说明书》 产品经理:接口规范、方法规范、参数规范、步骤要求等等《详细设计说明书》3. 开发 co...
2020-06-09 12:57:29
760
原创 Spring=SpringMVC-Spring-MyBatis=SSM框架整合
一.SSM框架整合需求:使用ssm框架完成对account表的增删改查操作。(1)搭建Mybatis环境:1.确定数据库 和表CREATE DATABASE /*!32312 IF NOT EXISTS*/`spring_db` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `spring_db`;/*Table structure for table `account` */DROP TABLE IF EXISTS `account
2020-06-08 00:22:21
285
原创 Spring = Spring拦截器之实现原理?
(1)SpringMVC运行流程在介绍SpringMVC拦截器之前,我们先介绍一下SpringMVC的运行流程:(1)用户发送请求,经过 前端控制器Dispacherservlet(Controller的核心)将url交给处理器映射器HandlerMapping处理(2)处理器映射器HandlerMapping处理url,返回HandlerExecutionChain(可能包含拦截器,一定包含自定义的Controller(Handler))(3)前端控制器Controller交给处理器适
2020-06-07 09:07:21
1938
原创 SpringMVC = SpringMVC响应,异常处理以及拦截器
springmvc 响应,同步-页面跳转,异步-网络请求返回数据 ; ajax异步交互; restful前后端分离开发风格;异常统一处理;拦截器一.SpringMVC的响应:(1)页面跳转=====转发方式一:简单方式方式 二: forward关键字:此关键字的底层就是:request.getRequestDispatcher("跳转路径").forward(req,resp);此关键字在使用后,不在经过视图解析器进行字符串的拼接... @RequestM.
2020-06-06 22:20:18
647
原创 SpringMVC = 基础面试题
(1) 什么是SpringMVC 作用是什么?一,首先是一个MVC框架。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法。二,springMVC,是spring的一个子框架,当然拥有spring的特性,如依赖注入。Spring下的子项目:Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求
2020-06-05 23:01:08
1796
原创 Spring = SpringMVC以及面试题
https://javadoop.com/(1)什么是SpringMVCSpring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,SpringMVC框架的目的就是帮助我们简化开发。Spring MVC 实现了即用的 MVC 的核心概念。它为控制器和处理程序提供了大量与此模式相关的功能。并且当向 MVC 添加反转控制(Inversion of Control,I
2020-06-05 22:29:37
834
apache-tomcat;jdk-8u201-linux-x64;mysql;nginx;redis
2020-05-27
javaxservlet.zip
2020-04-22
hutool工具集.zip
2020-04-17
dom4j-1.6.1.jar;jaxen-1.1-beta-6.jar;XPathTutorial.chm
2020-03-30
开源项目源码
2013-10-18
Android滑动菜单
2013-09-02
Animation动画效果
2013-06-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人