- 博客(70)
- 资源 (22)
- 收藏
- 关注
原创 IntelliJ IDEA 无 Spring Initiaizr
新版IntelliJ IDEA没有了Spring Initiaizr, 需要安装Spring Assistant 才可以。安装的过程如下,安装之后一定要重启IntelliJ .Settings->Plugins 输入Spring Assistant 。如下步骤
2021-03-06 10:11:39
669
2
原创 微服务架构整理-(三、注册中心之Eureka)
注册中心之Eureka概述注册中心的主要作用服务发现服务配置服务健康检测常用的注册中心Eureka概述Eureka的基础知识Eureka的交互流程与原理概述微服务架构中服务消费者是如何拿到服务提供者的相关信息?答案是注册中心。注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就到这里找到其他服务的地址进行调用。注册中心的主要作用它在微服务架构里起到一个协调者的作用,主要包含如下几个功能:服务发现服务注册/反注
2021-03-02 20:38:21
297
4
原创 微服务架构整理-(二、远程调用技术与CAP原理)
远程调用技术服务调用者与服务提供者之前通过远程调用技术进行交互,如图所示:目前常用的远程调用技术主要有两种:RPC和HTTP。RPCRPC(Remote Procedure Call)一种进程间通信方式,允许像调用本地服务那样调用远程服务,其主要目标就是让远程调用更简单、透明,负责屏蔽底层的传输方式(TCP/UDP)、序列化方式和通信细节。开发人员只需要知道服务在哪里,提供了哪些接口,整个调用过程不用关心。如下图所示整个调用与返回过程如图绿色和蓝色实线所示,但开发者见到的是绿色虚线和蓝色虚线。
2021-02-27 16:04:35
615
2
原创 微服务架构整理-(一、微服务架构的发展)
微服务架构的发展单体应用架构垂直应用架构分布式架构功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入工作中常用到微服务架构,知识点零零散散,这里稍微整理一下。微服务架构的诞生是建立在各代程序员的努力之下,先后经历了单体应用架构、垂
2021-02-23 20:50:40
4950
31
原创 由浅入深了解JVM-程序计数器
1,作用,指的是当前行2,存的是一个地址,不是整数值,但可以理解成一个是一个行号,即3,为什么要有程序计数器
2021-02-21 15:05:50
565
11
原创 由浅入深了解JVM-虚拟机栈
虚拟机栈是JVM内存结构中线程私有的模块之一,特性是先进后出,这个特性决定了方法的调用过程都在栈中进行。每调用一个方法在栈中就会生成一个此方法对应的栈帧,栈帧中包括四个部分局部变量表、操作数栈、动态连接和方法返回地址。当一个栈的内存不足以容纳足够的栈帧时,即所谓的栈尝试大于虚拟所允许的深度时就会抛出StackOverFlowError异常。当对栈进行扩展遇到JVM内存不足时会抛出OutOfMemoryError异常。栈的结构如下图所示:下面通过一段代码介绍虚拟机栈的工作原理jvm指令手册通过class
2021-02-21 03:24:07
1596
20
原创 由浅入深了解JVM-堆
jvm中堆主要是用来存放对像,并且作为jvm中最大的一块,因此垃圾回收时主要作用于堆,因为堆也被称作GC堆。关于垃圾回收,从两个角度去思考:什么样的对象被当作垃圾来处理?如何去处理?在考虑这两个问题之前...
2021-02-17 18:45:46
1147
7
原创 由浅入深了解JVM-内存结构
前言作为一名java工程师,无论如何都得对JVM有一定的了解,如果在互联网公司,尤其像BATM这样的大厂,如果想在技术上有一定的造诣那么对JVM就得有非常深入的了解,但作为一名普通的java工程师个人觉得最起码需要知道JVM内存结构(运行时数据区)由哪些模块组成,以及每个模块的作用。这里笔者是这样记得:三黄两绿,即五个模块。黄表示是线程私有的,只有自己能看的见。绿表示是大家都能用的,共享的。配合下图以及这四个字,JVM的内存结构就算掌握了。结构功能...
2021-02-15 20:39:06
2760
5
原创 mybatis annotation实现一对多查询
一个库位包含多种物料,需要查询库位的库存信息,即每个库位中包含的物料号,物料名称,数量 。这种情况可以有三种方法:java for循环实现存储过程实现sql复杂查询第一种方法效率太低,第二种方法对于存储过程不熟的童鞋需要学习成本。这里介绍最常用的第三种方法。需要返回的数据结构:@Datapublic class BinInfo { private int id;//库位id private String binName;//库位名 private int maxSt
2020-11-17 22:19:34
296
原创 C# model 映射 java model
开发过程中,两个服务分别用C#和java,在通信的过程由于各自命名习惯导致双方无法获取到具体的值。如下步骤1,定义C# modelpublic class HostReceiveModel { public string TaskId { get; set; } } 2,实例化C#modelHostReceiverModel model = new HostReceiveMode{ TaskId = "abc";}3,定义java model (有问题
2020-11-16 19:13:38
415
原创 windows后台运行java
遇到一客户,jar包需要运行在windows上,于是抽点时间研究了一下。平时在windows开发java项目过程中,如果需要运行jar包, cmd 中一条命令:java -jar test.jar 就搞定。但这有个问题,cmd窗口关闭,java服务就关闭。一般通过两种方法:以服务的形式运行通过nssm 将jar 定义成windows服务的形式。nssm获取 。注: 下载后解压得到nssm.exe, 建议配置到环境变量里面去其中记住里面常用的四个命令基本就够用nssm install [serv
2020-09-25 23:15:57
3193
1
原创 java C#枚举类定义错误码
最近在写C#时需要在switch中对不同的错误码进行处理,于是想到使用枚举类型,因为是新手,所以用起来感觉很不方便。之前用java开发时,使用枚举类定义错误码及其含义非常的方便,下文给出两种语言定义错误码及在switch语句使用的代码块,希望能帮到大家:java// the definition of ErrorStatuspublic enum ErrorStatus { SUCCESS(200, "Success"), REDUNDANT_OPERATION(201, "Redun
2020-09-12 15:23:14
1068
1
原创 ModSim32模拟 Beckoff 服务端
使用ModSim32模拟 Beckoff 服务端,主要需要注意几步MODBUS Point Type 选用 02:INPUT STATUS,代码中下标从0开始 。如下图所示:注:如果不选用02,即便代码中下标0开始,也会抛如下异常。Exception of type 'Modbus.SlaveException' was thrown.Function Code: 130Exception Code: 2 - The data address received in the query is
2020-09-11 09:30:41
1295
原创 Visual Studio Build 菜单中无 publish (发布)
准备发布一个项目结果发Build中没有publish,如下图所所示:研究了好半天也没找到好的办法,只有通过命令行进行publish,敲命令之前先进入sln所在目录,详细命令如下: 1. dotnet --info #获取RID(用于第三步) 2. dotnet build 3. dotnet publish -r win10-x64 -c Release --self-contained # win10-x64是RIDVisual Studio中应该有个配置项可以将publish添加进去,希
2020-08-31 16:12:41
2779
1
原创 Linux crontab 微操
首先介绍一下两个常用的命令。crontab -e 编辑定时任务,时间的设定可参考在线生成工具crontab -l 列出当前用户下的定时任务。注:这里强调的是当前用户,因为定时任务是认用户的,所以在设定定时任务要先指定用户。其次,路径要注意,通常在使用crontab之前会将需要的操作封装在shell脚本中,脚本中对文件的操作需要使用绝对路径。例如,打算将/app/test/a.txt 文件清空,脚本放在/app/shell下,命名clr_content.sh,以下是错误写法与正确写法:错误写法:
2020-08-30 16:42:03
192
原创 git最基本常用命令(持续更新中)
一, 创建分支定位至主分支(只有主分支可忽略此步): git checkout master创建并切换到新分支:git checkout -b newbranch注:-b 不要遗漏了。git branch 可以查看到刚创建的分支,但当前分支是在本地。更新分支代码: git add .提交至本地创建: git commit -m “init newbranch”推送到远程库: git push origin newbranch .结束二,代码合并(一),dev合到master确保分支
2020-08-22 20:36:00
695
1
原创 DBeaver 之 backup与restore失败
dbeaver 备份 postgresql数据始终报’native client home postgresql-x64-12’ not found . 研究发现这是由于dbeaver 没有配置pg_dump.exe造成的。pg_dump.exe路径…\PostgreSQL\12\bin,在dbeaver中配置即可。配置步骤如下:恢复同理,pg_restore.exe也在bin下,操作步骤一样,不再赘述。...
2020-08-16 18:05:22
3823
1
原创 DBeaver 之 创建数据库时,报“数据库已存在”
打开dbeaver发现之前建的数据库没有了,只有一个postgres. 于是打算重新创建这些库,但发现创建的始终报错“创建的数据 库已存在“,如下图所示:研究了好久,发现需要将之前存在的库删除,这里需要通过语句删除,因为库在navigator中没有显示出来,操作语句如下所示:select datname from pg_database WHERE datname = 'wms'drop database wms;至于库为什么没有在navigator中显示出来,忘大神留言指点,谢谢!...
2020-08-16 16:59:07
5073
4
原创 mybatis 调用postgresql 存储过程
之前在调用postgresql的存储过程时,还是使用传统的方法,没有充分利用mybatis框架,代码如下所示: @Override public String getBinById(String id) { String name = null; Connection conn = null; try { conn = dataSource.getConnection(); CallableState
2020-07-26 22:53:30
3809
2
原创 IntelliJ/DataGrip,Eclipse,Visual Studio /Visual Studio Code 快捷键Map(持续更新中)
最近接手了一个C#项目,包括前后端,为了使操作习惯保持一致,将Visual Studio 中的快键设置成Visual Studio Code. 之前主要使用java开发,相关的IDE为IntelliJ和Eclipse, 这里整理了下各个IDE常用的快捷键(持续更新中,同时请求各位大神留言补充)。另外,在操作数据库时使用过DataGrip, 与IntelliJ来自同一家,因此快捷键与之相同,详情如下表:Intelij/DataGrip功能EclipseVisual Studio/VS Code
2020-06-18 19:12:19
716
原创 Maven Profile 环境配置
在开发过程中,最少包括三个环境,分别是开发环境,测试环境以及生产环境,即对应三个配置文件(这里以*.yml为例,*.properties 同理),分别为:application-dev.yml 开发application-uat.yml 测试application-prod.yml 生产这里有一个小的地方需要注意一下:配置文件名中是中划线“-”,而不是下划线“_”,这里踩过坑,而且问题很难定位。通过在Maven pom.xml 进行两步配置 可以灵活选择对应的环境。profile 配置&l
2020-05-24 12:31:42
733
原创 Mybatis 使用annotation实现动态sql
在开发过程中有很多业务需要动态生成sql才能完成,例如前端展示某物品时就需要对物品进行分页,排序。这就需要需要至少传入四个参数,第几页,页大小,排序字段,升序还是降序。根据这四个参数动态生成sql。mybatis中提供使用xml和annotation的方式管理sql语句。这里介绍使用annotation的方式,因为annotation更多体现面向对象化。 annotation中动态生成sql有如下两种方式。annotation中拼接sq不太推荐这种方式,因为这种方法跟xml差多,需要其他的标签,.
2020-05-12 23:14:46
819
原创 使用Mybatis plus实现 postgresql 公共字段自动插入与修改
使用postgresql关系型数据库时,基本每张表都会包含created_time,modified_time,created_by,modified_by 这四个字段,一般情况下这四字个字段都有初始值,例如插入数据时前两个字段为当前时间,后面两个字段一般是开发者或者工程名等,修改数据时updated_time也为当前时间。因此可以使用mybatis plus 中的auto fill 功能为这四个值设值。详细步骤如下:pom文件如下将这四个字段封装成Baseimport com.baomidou.
2020-05-10 17:20:09
2673
1
原创 DBeaver 之关系表不存在
最近在使用DBeaver (版本:7.0.4)连接Postgresql 踩了一个大坑,花了两三个小时,结果是DBeaver本身的问题,以下的复现坑的过程。创建库(af4pg)创建表在public schema 下创建表goods:-- public.goods definition-- Drop table-- DROP TABLE public.goods;CREATE TABLE public.goods ( gid int2 NOT NULL GENERATED ALWAYS
2020-05-10 13:45:17
3833
4
原创 Linux启动java服务脚本
在没有自动部署的环境下,如果调试java 服务,每次都需要kill掉之前的服务,然后再启动,虽然整个过程也只涉及如下三个命令,但是频繁调试时还是让人很崩溃的。ps -ef | grep myjar#myjar为服务名kill -9 123456 #假设myjar的线程号为123456nohup java -jar -Xms1024m -Xms2048m myjar.jar & # 习...
2020-05-06 23:40:34
2646
2
原创 Windows Mysql 5.7 之 Access denied for user ‘root‘@‘localhost‘ (using password: YES) 解决方案
本文针对windows版的解决方案,linux版等有时间再加上去。在网上看了很多方法,也没有解决此问题。这里的解决方案跟其他的博文很相似,但更详细。1.修改my.ini, my.ini的位置并不是在C:\Program Files\MySQL\MySQL Server 5.7中, 而是在C:\ProgramData\MySQL\MySQL Server 5.7下2.在my.ini中找到 [m...
2019-08-10 11:17:36
556
1
原创 数据传输过程中加密与CA认证理解
数据传输过程中加密与CA认证理解正在使用安全知识实现数据在网上传输,由于自己没有这方面的知识,因此恶补了一下。在学习的过程中发现很多概念和知识点很容易让人迷惑,因此决定将自己对各知识点的理解记录于此,希望对各位的学习能起到帮助,并且衷心感谢各位大神纠正文中错误。1 ,对称加密和非对称加密 对称加密:加密和解密使用的是同一套密钥,实现简单,但是安全强度低于非对称加密,加密效率高,因此常用于...
2018-06-07 23:18:00
4320
2
原创 系统架构师备考经验
系统架构师备考经验距2017年11月份架构考试结束已经快半年了,自成绩出来以后就打算分享一下自己的备考经验,无奈搞IT的时间经常不能自由安排,这不刚提完离职终于有时间将自己的备考心得记录下来。首先跟大家说一下我考这个证的目的,每个人的目的都不一样。我目前工作在上海,想在上海买房,但苦于社保年限不够,户口没有,因此一直处于居无定所的状态,然而我研究上海的政策发现有这么一个高级证就可以申请上海户口...
2018-03-23 17:42:27
8360
28
原创 浅淡java类加载机制
本人学java出身,但说起来惭愧,对java的底层却不是很了解,比方说一会儿要淡到的类加载机制。大家在运行java程序的时候有没有想过,这个程序是怎么运行的。也许有得朋友会说,先编译成字节码,然后再加载到内存运行。不错,确实是这样,那新问题又来了,到底是怎么加载的。这里就会涉及到java的类加载机制。理解类加载机制,可以在程序运行的过程中动态的加载相应的类,从而提高程序的灵活性和适应性。
2015-09-25 14:04:22
386
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅