
Java
文章平均质量分 61
三喂树屋
@三喂树屋
展开
-
RPC(3)--基于 Nacos 的服务发现与负载均衡版
提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。nacos架构如下(依赖包:原创 2023-02-23 15:46:06 · 990 阅读 · 3 评论 -
RPC(2)------ Netty(NIO) + 多种序列化协议 + JDK动态代理实现
Magic Number 魔数,表识一个 MRF 协议包,0xCAFEBABEPackage Type 包类型,标明这是一个调用请求还是调用响应Serializer Type 序列化器类型,标明这个包的数据的序列化方式Data Length 数据字节的长度,反序列化时读取数据Data Bytes 传输的对象,通常是一个RpcRequest或RpcClient对象,取决于Package Type字段,对象的序列化方式取决于Serializer Type字段。原创 2023-02-22 09:06:20 · 467 阅读 · 0 评论 -
RPC(1)------Java BIO + JDK原生序列化 + JDK动态代理实现
本文跟着的代码,根据自己的理解做的笔记,先理解,再学习。原创 2023-02-21 09:17:11 · 246 阅读 · 0 评论 -
数据结构--链表实现【JAVA】
1.链表定义物理上非连续,非顺序的数据结构,由若干节点组成2. 分类单向链表:每一个节点包含:一个存放数据的变量data,一个指向下一个节点的指针next。双向链表:双向链表比单向链表多了一个指向前置节点的prev指针。3. 存储结构:数组是顺序存储,链表则是随机存储。对比图如下4. 单链表基本操作6.1 查找节点查找需要从头节点开始,如果查找第三个节点,需要以此访问前两个节点,例图如下:6.2 更新节点首先查找到要更新的节点,直接更新data即可6.3原创 2022-03-26 21:11:51 · 1461 阅读 · 0 评论 -
Java ArrayList动态扩容机制
手把手看源码上篇实现了一个动态扩容数组,扩容原理大致相同,但比起java实现的扩容机制,还是有很大不同,下面我们看一下java中ArrayList的扩容机制。ArrayList:1. 可动态修改的数组2. 没有固定大小的限制在add()函数处打个断点,开始debug起来!然后点击:Force Step Into首先进入的是自动装箱机制:点击 Step into跳回到add这里再次点击Force Step Into,进入add函数从函数名字也能看出ensureCapacit原创 2022-03-24 23:23:24 · 396 阅读 · 0 评论 -
数据结构基础--数组实现[java版]
数组的概念数组是有限个相同类型的变量所组成的有序集合,数组的存储结构如下:数组的存储结构:数组的特点:数组在内存中是顺序存储的,因此数组可以直接通过下标访问元素,读取速度较快,但插入和删除元素为了保证删除后的元素仍然是紧密相连的,会导致大量元素被迫移动,影响效率,因此数组适合:读操作多,写操作少的场景数组在内存中的存储结构:灰色:已被占用绿色:空闲内存此时如果删除元素8,其后的7,9,1都需要前移来保证元素是连续连接的。数组的基本操作有:了解了数组的底层存储结构,来看一下数原创 2022-03-20 16:24:14 · 457 阅读 · 0 评论 -
vscode运行cnpm报错
错误如下 中的 about_Execution_Policies。所在位置 行:1 字符: 1cnpm+ CategoryInfo : SecurityError: (???? [],PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccess问题vscode使用的powershell,导致权限不足方案以管理员身份运行powershell执行命令set-ExecutionPolicy Remot原创 2022-01-05 11:31:58 · 620 阅读 · 0 评论 -
IDEA插件系列--自动生成set方法的GenerateAllSetter插件
作为后端开发者,在实现业务时,需要在业务中创建一个对象,比如订单对象示例,然后需要set订单相关的一些属性,地址,创建时间…如果碰到属性很多的类,那么我们一个一个.set方法是不是很累?今天分享的idea插件就是来帮助你应对上面场景,GenerateAllSetter插件安装:1.2.安装之后,在创建了一个对象时,就会显示如下:...原创 2021-12-14 22:38:07 · 1169 阅读 · 0 评论 -
IDEA插件系列--Mapper接口自动跳转配置mapper.xml
大家好,今天介绍一款idea插件,能够在开发中很大帮助你提高开发效率,名字叫做Free Mybatis plugin这款插件能干什么呢?下面我来介绍一下它的方便之处!我们在进行后端开发时,需要一个方法,往往是从controller层定义一个方法然后可以直接在对应的service层创建对应的方法:在service也可以很方便的点击ATL+Enter在对应的实现类中实现方法之后我们在serviceimpl中调用mapper方法来访问数据,也可以很轻松的在mapper中创建对应的访问方法。.原创 2021-12-12 20:40:21 · 8611 阅读 · 2 评论 -
SpringBoot开发系列----@Repository注解
首先看源码:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Repository { @AliasFor( annotation = Component.class ) String value() default "";}能够看出,@Repository也是一个**@Component**,作用其原创 2021-12-12 20:22:36 · 1318 阅读 · 0 评论 -
java中Lambda表达式
1. 为什么要有Lambda表达式?我们都知道,Lambda表达式是在java1.8引入的新性能,并获得了java开发者的一致好评,那么,java为什么要引入Lambda表达式呢?1.1 引入前的诉求!抛开Lambda表达式不说,相信我们在开发中有可能遇到如下情况:当你进行Swing开发时,是否使用过Timer定时调用函数?public Timer(int delay, ActionListener listener){......}需要一个延迟时间参数和ActionListener原创 2021-12-10 23:13:40 · 584 阅读 · 0 评论 -
SpringBoot开发系列--全局异常处理:@RestControllerAdvice作用及原理
使用springboot开发系统时,假设还是登录功能的实现,如果此时让你校验用户名(手机号)是否为空或者是否合法,传统意义上会使用下面的逻辑if (StringUtils.isEmpty(mobile)||StringUtils.isEmpty(password)){//手机哈为空或者密码为空,返回json数据供前端接受解析提示 return RespBean.error(RespBeanEnum.LOGIN_ERROR); } if(!Val.原创 2021-12-06 15:01:09 · 906 阅读 · 0 评论 -
SpringBoot开发系列--校验依赖:validation
在实验业务时,特别是在登录时,可能需要验证前端传送过来的帐号密码是否符合要求:例如假如帐号是手机号,我们需要验证手机号是否合法(长度是否是11位,等等),此外,如果前端传送的是对象,在后端接收时需要验证重要字段是否符合要求。为什么有些可以在前端可以验证的,后端还要验证?后端可以说是最后一道防线,所以不管前端时候进行了验证,后端在数据入库之前都要进行验证,这是出于安全的考虑。今年天的主角:validation<dependency> <groupId&.原创 2021-12-05 12:53:33 · 5028 阅读 · 0 评论 -
Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBea
Invalid default: public abstract java.lang.Class org.mybatis.spring.annotation.MapperScan.factoryBean()at java.lang.reflect.Method.getDefaultValue(Method.java:612) ~[na:1.8.0_201]很明显是引入mybatis的问题,我的引入是下面这样,引入的是mybatis-plus,引用了SpringMVC的引用方式,如果你创建的是Spri.原创 2021-12-02 16:16:24 · 1312 阅读 · 0 评论 -
JAVA重载,覆盖,隐藏解析
含义理解重载1.发生在同意作用域内,例如,同一个类中或者同一个接口中方法名要相同形参组成不同:包括形参类型,个数覆盖1.不同作用范围内:继承别的类,实现接口2. 既然是覆盖,当然外观要看起来一摸一样才行: 方法名相同: 形参组成相同(类型、个数均相同) 返回类型相同隐藏同覆盖类似,但特指类方法(静态方法)示例分析先定义两个类如下:class Super{ int x=0; static void name(){ System.out.原创 2021-11-02 10:41:04 · 207 阅读 · 0 评论 -
git撤销commit
每次写完代码时,需要更新分支时,一般都是git add . //添加所有文件git commit -m "功能描述"但是执行完之后想撤回怎么办?git reset --soft HEAD^这样就成功的撤销了你的commit注意,仅仅是撤回commit操作,您写的代码仍然保留。...原创 2021-08-27 14:01:31 · 119 阅读 · 0 评论 -
mysql修改初始密码
前面我们安装好了mysql,首要任务就是修改密码启动mysqlsudo service mysqld start检查运行状态sudo service mysqld status查看默认密码sudo grep 'temporary password' /var/log/mysqld.log最后面的类似于:@localhost: 0xxXxxXx?xXX的就是密码...原创 2020-04-15 17:12:52 · 9353 阅读 · 1 评论 -
yum install mysql-community-server太慢2020
阿里云的服务器centos7.6相信能够点到这里来的都是被那十几k的下载速度给逼来的,可能你已经尝试更换yum源为阿里的,在2019年的时候这个方法还是可行的(网速也是可以达到数M的),但不知怎么,今天换了阿里源只坚持了几秒,立刻缩回了十几k,秒难?玩笑归玩笑,下面进入正题此时的你如果按部就班的运行了yum -y install mysql-community-server注意,此...原创 2020-04-15 17:14:21 · 8192 阅读 · 8 评论 -
SpringBoot项目部署到云服务器上系列教程(三)
经过前面的配置,环境我们基本已经搭建完成SpringBoot项目部署到云服务器上系列教程(一)SpringBoot项目部署到云服务器上系列教程(二)下面我们就开始将项目部署到云服务器上!1)将war包通过xftp上传到tomcat下的webapps目录下2)修改server.xml文件,划重点和第一篇文章相同,在Host标签中加入下面内容vim修改<Context path=...原创 2020-04-16 21:55:21 · 584 阅读 · 0 评论 -
SpringBoot项目部署到云服务器上系列教程(二)
一.云服务器环境搭建--Tomcat配置 服务器:aliyun+centos7.6需要搭建java环境+Tomcat+mysql这些都是直接下载压缩包自己配置或者在线安装我选择的是在电脑上下载好各个安装包,xftp上传到服务器上xftp下载点击这里,文章结尾处远程连接推荐xshell,需要的评论即可搭建基本环境并不难,这里我挑我自己会感觉比较容易忽略的地方说一下安装好t...原创 2020-04-16 21:34:55 · 1306 阅读 · 3 评论 -
org.apache.coyote.AbstractProtocol.destroy Failed to destroy end point associated with ProtocolHandl
IDEA+maven+Tomcat今天打包的war包,作为第二个版本,就把war包的名字换了以下,然后放在Tomcat上测试,结果就报了下面的错误org.apache.coyote.AbstractProtocol.destroy Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"] ja...原创 2020-05-08 17:10:54 · 5793 阅读 · 0 评论 -
SpringBoot项目部署到云服务器上系列教程(一)
一.war包导出 纯小白入门,从项目到处到本地Tomcat测试,再到服务器环境搭建与配置,再到运行成功,除了上课时间之外,历经一天半,中间还翘了一节课,唉,深深的认识到,菜是原罪!这个系列博文旨在记录自己这一天多得收获和踩的坑,同时供有类似想法的朋友做一些参考,如果能帮到你,那是缘分,如果我遇到的坑对你来说没有用,也请不要m我,因为每个error或许都是个迷.环境:IDEA2019.2...原创 2020-04-16 21:32:48 · 2679 阅读 · 1 评论 -
解决IDEA使用Jquery的$符号提示未定义问题-2021。
导入jquery之后,还是提示无效下载之后就可以使用了原创 2020-06-07 21:48:48 · 4136 阅读 · 8 评论 -
The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from
Eclipse运行是报错缺少servelet-api.jar产生原因:在原来的web项目中更改了tomcat版本,导致tomcat包丢失解决:找到项目中任一jar包右击:build Path -->configure build path添加tomcat即可(默认带有servelet-api.jar,除非自己删除了)...原创 2020-03-25 10:35:50 · 292 阅读 · 0 评论 -
java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/ser
搞了将近两个小时,快要s了,no error!问题相似性:springboot:v2.2.5.RELEASE问题出现时间:debug之后发现出现在controller类中返回ModelAndView对象时出现的错误。其他时刻运行正常话不多说,直接干货这种原因在于springboot在创建项目是会有内置的Tomcat版本,而且变态的是,基本上springboot版本的不同(即使是小版本的...原创 2020-03-24 22:00:28 · 19979 阅读 · 18 评论 -
github如何赋予别人push权限
1.登录github,进入希望协同开发的仓库2.点击Settings3.点击Manage access4.输入想要添加的用户名即可原创 2020-03-24 13:51:28 · 10379 阅读 · 0 评论 -
Git上传项目到GitHub和更新项目
转载于转载 2020-03-24 13:19:35 · 121 阅读 · 0 评论 -
Spring 配置文件添加context:component-scan后就无法解析
Exception in thread “main” org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [bean.xml]; nested exception is java.lang...原创 2020-03-20 15:09:16 · 827 阅读 · 0 评论 -
Eclipse编写xml文件时视图编辑修改
打开xml文件之后,在编辑区左下角,默认是Design,修改为Source即可解决。原创 2020-03-03 21:16:35 · 1102 阅读 · 0 评论 -
Eclipse没有Build Path 的解决方法
2.原创 2020-03-03 18:25:00 · 916 阅读 · 0 评论 -
Java出现The server time zone value '�й���ʱ��' is unrecogni的解决
报错The server time zone value ‘йʱ’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a ...原创 2019-09-18 21:36:23 · 1966 阅读 · 0 评论