
后端开发
文章平均质量分 64
杰杰椒
教是学的最好方法
展开
-
PostgreSQL转Mysql数据库
总结postgresql与mysql的差异,记录将postgresql替换为mysql做了哪些事情:PostgreSQL转Mysql数据库1. 修改数据库连接配置(省略)2. 解决mysql关键字key,explain,describe,require冲突3. 自增长类型由SEQUENCE改为mysql支持的IDENTITY;4. 更换数据类型:5. sql语法:1. 修改数据库连接配置(省略)2. 解决mysql关键字key,explain,describe,require冲突3. 自增长类型由S原创 2021-12-13 17:17:05 · 2427 阅读 · 0 评论 -
代码逆向生成表
逆向工程自动生成表-ACTable1.引入组件2. 配置组件2.1 配置mybatis2.2 配置启动属性启动类型追加包扫描3.模型加表注解4.启动完成在一些小型项目中或者新项目中,例如一些外包项目,可以通过代码注解配置,在项目启动时自动生成或更新表结构。现已经已有开源组件实现了这个目标。ACTable:官网地址。下面介绍如何引入到SpringBoot+MybatisPlus项目中。1.引入组件maven配置: <!--自动生成表--> <depend原创 2021-10-08 14:51:12 · 809 阅读 · 0 评论 -
公交车里看GC机制
GC机制非常有意思,它让我联想到生活中的一些空间占用自动分配的现象。比如公交车乘客乘坐的分布现象。原创 2019-02-21 09:47:11 · 1881 阅读 · 1 评论 -
MapStruct解绑DTO与DO的映射赋值
MapStruct是一个类型安全的映射处理工具,能把已定义的类,映射到另一个类。解耦了对象之间的依赖关系。一、问题场景再现一般我们写业务时,都要处理DTO与DO的转换。假设要添加一个Man数据,将客户端传入的DTO转成DO,笨拙的做法是new一个DO将Man所有的属性赋值一遍,然后再用MyBatis的DAO插入到数据库。如下代码所示:public class InsertRequst{//M...原创 2019-03-04 15:46:17 · 824 阅读 · 0 评论 -
java循环和递归干货
一、问题描述循环和递归算法之间可以替换实现,但是他们之间有什么差别呢,时间复杂度,空间复杂度是多少?我将通过java的栈追踪来进行探究。二、实验算出1到5的二次方的累计值,分别写一个循环体和一个test递归方法。代码如下:输出结果分别如下图2,图3所示。通过分析栈的出栈入栈过程,循环的的调用的栈只压入第10行(也就是for语句所在的行号)代码的指令;而递归则总共开辟了5个栈存放test...原创 2019-03-07 15:59:20 · 596 阅读 · 0 评论 -
查看Zuul的路由映射信息
背景:在使用zuul进行路由配置时,经常会添加或修改路由。通过zuul的两个智能端点routes、filters可以对路由和过滤信息进行查看,还可以更新路由。下面我们一起来看一下如何使用。分析:实现智能端点,需要使用Spring boot 下的actuator,zuul已默认集成starter-actuator,可查看依赖包,如下图所示。实现:actuator默认只暴露health,i...原创 2019-03-29 18:23:01 · 2759 阅读 · 0 评论 -
SpringBoot外部配置优先级
外部文件的配置:a=123b=567application.yml中有:a=000c=888整合之后的配置信息是:a=123b=567c=888理念:为了在外部能控制配置内容Spring 官方指南原创 2019-04-01 17:17:19 · 418 阅读 · 0 评论 -
Load balancer does not have available server for client在Zuul中报错的解决办法
问题:Spring Cloud 的路由Zuul,在访问对应的路由时,uri返回500错误,并且检查服务器报错:解决办法:pom文件中的引用"spring-cloud-netflix-eureka-client"改为starter的 “spring-cloud-starter-netflix-eureka-client”解决思路:看提示错误堆栈发生在netfix client进行loa...原创 2019-03-28 17:03:50 · 12739 阅读 · 8 评论 -
RabbitMQ安装(CentOS Linux7)
一、安装 Erlang1.1 准备yum updateyum install epel-releaseyum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64安装包官方地址erland和rabbi...原创 2019-04-03 10:57:37 · 167 阅读 · 0 评论 -
多线程之读写锁
之前没真正使用读写锁,看到别人对读写锁的解释总感觉一头雾水。今天亲自敲代码实验之后,才明了,原来如此。网上没有一篇文章是能描述出自己理解的样子,所以将自己的思路记下来。先提出疑问,边自答边找思路,有了思路,再回头去运行一下代码,就清晰明了了。如果你急着想要一句话概括读写锁,那我会告诉你:读锁是加在读方法里的,是为了方便线程在运行写方法的时候阻止其他线程执行这个读方法,而没有写操作时读锁被忽略。...原创 2019-05-09 19:09:50 · 1301 阅读 · 0 评论 -
Redis哨兵部署(Windows)
Redis主从Redis哨兵1.Redis安装略1.Redis主从配置:在Redis安装目录下找到redis启动配置文件——redis.window.conf文件,复制两份作为从服务的启动文件。修改两个从文件的配置内容,设置port和slaveofport 6380slaveof 127.0.0.1 6379masterauth yourpassword #若有密码这里需...原创 2019-05-21 10:44:45 · 2123 阅读 · 0 评论 -
多线程状态-复习
1.创建创建有两种方式:1继承Thread,2实现Runnable。其实继承Thread,也会实现Runbable。new Thread去建立一个线程,线程的资源是new Thread中传入的对象。2.状态线程的状态有NEW , RUNNABLE , WAITING , TING_WAITING ,BLOCKED, TERMINATED问题:NEW时初始化了线程的名称,资源;还没...原创 2019-06-05 10:46:10 · 124 阅读 · 0 评论 -
多线程同步异步-复习
一个线程对象,被启动一次就创建了一个新线程。每个线程的共有资源是此线程对象持有的对象,如下图的thread-a/thread-b/thread-c调用single对象的方法,即持有single对象资源,这是共有的。每个线程有自己的方法栈,各自执行,就是异步,需要协同执行就是同步。对对象加锁在被持有对象(共享对象)中定义同步语句,如single对象,而不是在线程对象中定义。除非线程对象中有...原创 2019-06-05 14:05:03 · 797 阅读 · 0 评论 -
多线程协作-复习
多线程的协作,只会出现在同步过程中。1.wait/notify线程靠对象监视器来同步协作,所以是这样实现的:监视对象obj作为锁,有wait和notify的监视方法。线程使用obj.wait() / obj.notify()来互相通知协作。wait()可以设置等待时间,不设置的话只有等待通知才会进入运行状态。notifyAll()notify()notify通知了之后,要等...原创 2019-06-05 14:49:45 · 248 阅读 · 0 评论 -
Spring Cloud笔记-Eureka
1.Eureka解决的问题:实现服务高可用2.Eureka实现原理:(1)服务注册发现服务实例向注册中心注册(推送元数据),并主动定时发送心跳(lease-renuwal-interval-in-seconds=30)(2)消费者获取服务消费者实例向注册中心获取服务实例清单,并主动定时获取清单(registry-fetch-interval-seconds=30)3.服务...原创 2019-06-08 22:32:08 · 154 阅读 · 0 评论 -
一表看清JavaEE与Java SE的区别
Java生态框架如下表所示:JavaJava LanguageJava PlatformJVMJDKJava EE Java MEJavaFXJava SEJava技术=Java语言+java平台Java平台=JVM+JDKJava SE=Java平台根基Java EE,JavaSE,JavaFX 是Java SE的扩展官网原文:oricle...原创 2019-03-01 16:29:10 · 1687 阅读 · 0 评论 -
Proxy代理模式
Proxy代理模式分为静态代理和动态代理。代理顾名思义就是替代,类替代另一类去做一件事。那么一件事就是两个类都会做的,所以这一件事即被定义成接口,而另一个类需要在做这件事时有额外的作为,不然这个类就没有存在意义了。一般Proxy静态类是用来扩展现有系统的,比如售票系统原代码中已经有了一个火车票售票员类TicketSaler,这个售票员只能在卖火车站窗口卖票。现在增加售票代理点,代售售票员Pro...原创 2019-03-04 22:26:10 · 308 阅读 · 0 评论 -
StackExchange.Redis
上篇文章介绍了Redis服务器和客户端管理器的使用,接下来小编将介绍Redis的C#/.net代码客户端——StackExchange.Redis 一、为啥要使用它 应高性能目的的网站开发要求,多种缓存服务应运而生。Redis就是其中之一,而它的特点在于: Redis支持高并发访问; 客户端可以静态协调多redis服务维持健壮性和可用性; 方便访问redis所有的特性设置 异步同步使用...原创 2018-02-09 17:55:22 · 977 阅读 · 0 评论 -
RedisSessionStateProvider会话缓存
Microsoft提供了一个Redis供应程序,用来缓存Session,也就是说session信息都会缓存在Redis服务器中。这样我们可以实现分布式,提高网站的性能。一、下载安装在Visual Studio中,用Nutget下载Microsoft.Web.RedisSessionStateProvider包,Install-Package Microsoft.Web.RedisS...原创 2018-02-12 14:41:41 · 950 阅读 · 0 评论 -
RestSharp简单的HTTP请求辅助类
在.net中,using System.Net包可以使用HttpWebRequest发起一个HTTP请求: var posturl="http://localhost:8088/api/test"; var req = HttpWebRequest.Create(posturl); req.Headers.Add("he...原创 2018-03-07 17:49:27 · 4124 阅读 · 2 评论 -
RedLock.Net分布式锁
Redlock在一些不同进程必须操作共享资源的环境中特别适用。 实现DLM(Distributed Lock Manager)官方链接一、安装Install-Package RedLock.net -Version 2.0.0二、使用通过一组Redis终端构造一个RedLockFactory.在程序中重复使用RedLockFactory。每一个实例维持它自己配置中的连接。当你的应用停用时记得处原创 2018-03-01 17:31:02 · 2173 阅读 · 0 评论 -
lambda_method报错NullReferenceException: 未将对象引用设置到对象的实例
lambda_method报错:NullReferenceException 原来匿名变量的属性表达,就是lambda表达。由于匿名变量为null,属性不存在,所以这样去获取时会报这个错误。原创 2018-03-06 15:35:14 · 1862 阅读 · 0 评论 -
架构师之路精选50篇
2016精选索引,点击标题阅读相关文章。【方法论】《秒杀系统架构优化思路》 《分布式ID生成器》 《互联网架构,如何进行容量设计》 《线程数究竟设多少合理》 《单点系统架构的可用性与性能优化》 《关于负载均衡的一切》 《异构服务器负载均衡及过载保护》 《LVS为何不能完全替代DNS轮询》 《究竟啥才是互联网架构“高并发”》 《究竟啥才是互联网架构“高可用”》 《100亿...转载 2018-03-23 10:53:21 · 284 阅读 · 0 评论 -
AutoFac实现.Net控制反转
首先,介绍一下控制反转。控制反转Inversion Of Control顾名思义,就是将控制对象转换一下,控制对象交给自己,那什么场景下使用呢?1.想要在你的app里构建控制反转的架构2.添加Autofac的引用3.在应用程序startup中。。。4.创建一个ContainerBuilder5.注册组件6.构建并保存接下来需要用到的容器7.在程序执行时。。。8.从容器里创建一个生命...原创 2018-09-27 22:13:06 · 1722 阅读 · 0 评论 -
关于SQL查询效率,100w数据,查询只要1秒
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比较两种查询的性能SQL查询效率 step by step:– setp 1.– 建表create table t_userinfo(userid int identity(1,...转载 2018-10-19 14:01:35 · 5900 阅读 · 0 评论 -
StackExchange.Redis模糊查询
前言Redis在查询上提供给.net的api方法,只有StringGet、StringGetBit、StringGetRange。如果想做模糊查询,该怎么办?Redis Client那么强大,api不可能只限于此,查了查Redis官网,果然有大招,那就是LuaScript.我们来先认识一下LuaScript,它是一个EVAL脚本。Redis2.6.0有内置的Lua编译器,EVAL就是用来在Lu...原创 2018-10-10 17:05:22 · 4241 阅读 · 2 评论 -
入门java必备技巧-Maven
1.想要执行你的java程序,必须打包成jar/war包,一般使用Maven完成。Maven生命周期,基本过程:clean(删除生成文件)、compile(编译成.class文件)、install(生成jar包)、deploy(部署)mvn clean install -Dmaven.test.skip=true仓库镜像配置:将Maven安装路径下的setting.xml文件拷贝到....原创 2018-10-24 15:24:22 · 177 阅读 · 0 评论 -
.Net Entity Framework模型中的视图Key
不理解EF机制的小白,有时候遇到视图添加不到模型编辑器中,很是无解,关键是EF编辑器愣是报一些没有用的错误:模型已生成,但出现警告或错误。有关详细信息,请参阅错误列表。运行应用程序前需要修复这些问题。这些问题归根结底可以用Microsoft官网上的一句话来解答:每个实体都必须具有唯一实体键内实体集但是在官网里没有介绍对于视图一些没有表主键的情况,EF生成器是怎么生成模型Key,所以...原创 2018-10-30 17:06:55 · 806 阅读 · 0 评论 -
网络安全几种加密方式
下面介绍几种网络传播加密方式:1.密钥散列采用MD5或者SHA1等散列算法,对明文进行加密(这里的加密仅对人,不对机器,因为这些算法机器可以用对应算法算出来)适用场景:普通文件下载缺点:不具备安全性,可认证性2.对称加密适用场景:收发方数量固定,密钥使用对象少缺点:BS网络传输关系,密钥过多难维护,除非对密钥进行加密传输3.非对称加密3.1接收方发送公钥(保证数据完整性)...原创 2018-11-01 18:07:26 · 17165 阅读 · 0 评论 -
自定义Exception
自定义的Exception,只需要继承Exception或者Throwable。然后在构造函数中定义报错内容就可以了。以下是具体的例子:1.定义Exception类:public class TestException extends Exception { public TestException(String errMsg){ super("要报错了:"+errMs...原创 2019-01-15 11:58:17 · 313 阅读 · 0 评论 -
事务的隔离级别
事务的隔离级别有四种,分别是:read uncommitedread commitedrepeatable readserialzable.以下将用图例来解释它们的区别:1.未提交读即在事务未执行commit语句前的写(增删改)操作,都会直接影响到表数据,其他事务去读取时就会出现脏读。脏读,即读取了不实际的数据,或者是中间数据:2.提交读即事务执行commit之后事务里的写操作...原创 2019-01-23 15:32:15 · 122 阅读 · 0 评论 -
Spring知识点总结
框架目标:保持JOPO简单性核心思想:DI(Dependency Injection)+面向接口 =&amp;amp;gt;实现松耦合=&amp;amp;gt;易于测试,可重用AOP(Aspect oriented programming) =&amp;amp;gt;功能点分离=&amp;amp;gt;可重用模板方法=&amp;amp;gt;消除样板式代码DI具体实现:1.容器BeanFactory =&a原创 2019-02-15 09:36:22 · 198 阅读 · 0 评论 -
Spring-boot-Mybatis-Starter
简介spring boot mybatis starter是mybatis在spring boot的嵌入。 入门spring boot mybatis starter原创 2017-12-05 16:36:03 · 1726 阅读 · 0 评论