
学习
文章平均质量分 82
shrek11
我好 才是大家好
展开
-
分布式和微服务的区别
分布式和微服务有什么区别: 分布式是整个系统的一个顶层设计概念,我们常说分布式设计,分布式系统等, 从概念理解,分布式服务架构强调的是服务化以及服务的分散化, 微服务则更强调服务的专业化和精细分工; 从实践的角度来看,微服务架构通常是分布式服务架构, 反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。 分布式里包含很多东西...原创 2020-01-15 13:27:34 · 428 阅读 · 0 评论 -
spring 源码解析(一)
spring源码解析是一个很大的工程,但是又是程序员进阶的一个必经之路,至少了你阅读了它之后,不仅在开发中应用它的时候,能够知道它的运行原理,排查spring的各种问题,更重要的是,通过阅读spring源码,你可以学习它的设计理念,然后把这种开发习惯和思路用到你平常的开发中。阅读源码前,你至少要对SPRING的定义和模块有一定了解,不然看源码事倍功半。首先spring是什么...原创 2019-12-26 10:36:48 · 239 阅读 · 0 评论 -
mybatis源码解读
mybatis基本上都在用,我们来了解它的源码和实现我看Mybatis源码的经验分享给大家,大家可以参考,1,我们首先把源码下载,https://github.com/tuguangquan/mybatis这个是他人做了中文注释的源码,下载到本地。2,导入mybatis-parent模块,快速入口3,pom中有个PDF的插件引用去掉,这样,mybatis源码环境就可以了...原创 2019-12-23 17:19:39 · 838 阅读 · 1 评论 -
springboot 秒杀系统(二)redis
上一步我们做的秒杀虽然在操作上没问题,但性能上能有很大的提升空间。我们可以先把秒杀数据加载到内存中,考虑到以后服务集群化,所以加载的数据不存放在JVM中,而存在放redis首先,我们都知道,redis在数据存取方面远远大于mysql所以我们第一步优化是:可以将秒杀数据加载至REDIS中,然后我们在查询数据的时候,优先从redis里查找。注意:这里redis和MySQL最...原创 2019-12-13 16:55:34 · 1007 阅读 · 0 评论 -
springboot 秒杀系统(一)
秒杀系统应该是很检验一个人的能力的项目。包括从前端到运营商到nginx到后端等等,很多地方可以优化。前端的页面控制,运营商的CDN加速,nginx的动静分离等下面我来一步一步实现后端的秒杀功能的一步一步实现和优化。后端接口1,获取商品详情,2,秒杀接口获取商品:参数 商品ID 通过商品ID返回商品详情。秒杀接口:参数 商品ID 后端接收商品I...原创 2019-12-13 14:38:42 · 578 阅读 · 0 评论 -
springboot 引入一些低版本的包
最近一个问题,记录一下,我要引入 jedis client这个redis客户端包,于是我在Pom加入了<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.3<...原创 2019-12-03 18:15:19 · 1090 阅读 · 0 评论 -
JAVA中的深拷贝和浅拷贝
对于一个对象的拷贝,有很多方法,比如最简单的就是这个类实现 cloneable接口,实现clone()方法即可,但是这样是浅拷贝,意思就是对象的基础类型和引用对象的句柄都拷贝过去了注意 这里说的是引用对象的句柄但是,学过JVM的都知道,基础类型都是存放在JAVA栈中,引用类型:句柄存放在栈中,对象是存在放堆中所以你如果修改1个对象的引用,相当于修改了2个对象的应用。因为...原创 2019-11-27 10:40:39 · 230 阅读 · 0 评论 -
编写自己的工具starter类 (一)- spring-boot-redis-starter
开始spring-boot 为什么现在这么火了,因为它解决了很多配置信息文件实现了集成一个组件,装箱即用的效果。也就是约定大于配置。平常工作中,我们也可以开发自己的starter包,下面以我写的一个工具包为例需求写一个redis的客户端spring boot工具包,同时能够实现连接 单点,哨兵,cluster。代码已经上传至github快速入口使用方法1,把我gi...原创 2019-11-26 10:27:25 · 1331 阅读 · 1 评论 -
JDK1.8 新特性(一) Lambda表达式
1 为什么要学习Lambda表达式了?装B?写代码更吊?都不是,比如你看一些源码的时候(很多源码都使用它了),有很多Lambda表达式你又看不懂,怎么办,只有学习它,弄懂它,是吧?为什么要用Lambda表达式了?它使你的代码看起来更简洁,代码量更少..其它的语言都引进了,作为第一语言的JAVA 为什么不引进了2 Lambda表达式又叫函数式接口编程,函数式接口:顾名思义...原创 2019-11-25 11:02:54 · 191 阅读 · 0 评论 -
SpringAOP原理分析
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...转载 2019-11-20 10:54:49 · 197 阅读 · 0 评论 -
JAVA ( 一 )虚拟机的内存结构
JVM是Java虚拟机,运行在操作系统之上,所以JAVA 有着 一次编译,到处运行的功能JVM的内存分下面几个部分1,程序计数器 线程私有的,每个线程都有自己的程序计数器。 是当前线程正常执行的那条字节码指令的地址,若当前线程执行的是一个地址方法,那么此时程序计算器未Undefined,不需要程序员维护的。2, java虚拟机栈 线程私有的 该区域也是我们常说的JMM(...原创 2019-11-06 09:57:17 · 165 阅读 · 0 评论 -
springboot 实现读写分离,分库分表 (三) 使用SHARDINGJDBC分表
我们知道,当表的数量大于一定限度的情况下,操作起来就非常慢所以我们就可以把表分成拆分成多个表保存,比如我一个user表,未拆分前,有五千万条数据,我们就可以把它拆成10个表来保存,当然你的主键是一个有序自增长的序列,这个自增长的ID必须在插入之前就分配,可以参考分布式ID生成机制(下个博客介绍),通过SHARDINGJDBC我们就可以设定一个规则,比如每个插入库的ID我...原创 2019-10-24 12:00:22 · 393 阅读 · 0 评论 -
rabbitmq 怎么保证幂等性,数据一致性问题
mq的作用主要是用来解耦,削峰,异步,增加MQ,系统的复杂性也会增加很多,也会带来其他的问题,比如MQ挂了怎么办,怎么保持数据的幂等性幂等性问题通俗点讲就是保证数据不被重复消费,同时数据也不能少,也就是数据一致性问题。下面是MQ丢失的3种情况1,生产者发送消息至MQ的数据丢失解决方法:在生产者端开启comfirm 确认模式,你每次写的消息都会分配一个唯一的 id,...原创 2019-10-14 09:46:03 · 8309 阅读 · 3 评论 -
钉钉 H5微应用开发 免密登录
近2年钉钉很火,很多企业在用,要做一个钉钉的微应用打算用VUE做前端,springboot做后端。其中比较重要的就是钉钉的免密登录,网上资料比较少而且很多都过时了,下面我这个官方SDK包是20190926发布的钉钉微应用开发者文档:https://ding-doc.dingtalk.com/doc#/bgb96b/aw3h75本博客项目源码:https://github.com...原创 2019-10-13 11:57:50 · 10536 阅读 · 8 评论 -
关于 RESTFUL API 常用认证方式
1,HTTP BasicBasic admin:admin Basic YWRtaW46YWRtaW4= Authorization: Basic YWRtaW46YWRtaW4= 由于HTTP协议是无状态的,所有每次请求都得带上身份信息,基于Http basic验证就是简单的将用户名和密码base64编码放到header中,一般需要HTTPS,安全性较低,实现的方式可以基于代码实现也可...原创 2018-11-17 17:35:29 · 2502 阅读 · 0 评论 -
springcloud 学习六 增加vue-element-admin 作为前端 springcloud 后端
后端的认证服务器,UPMS(用户权限服务)已完成。前端选择vue-admin-template 进行改造,代码提交更新至GIT库: shrek 后端: https://github.com/wushu0725/shrekshrek-ui 前端 : https://github.com/wushu0725/shrek-ui 线上DEMO : http://www.shrek1...原创 2019-01-11 15:44:57 · 1439 阅读 · 1 评论 -
前后端分离(VUE+SPRINGBOOT+SHIRO+MYBAITIS)整理导航
springboot + shiro + vue 前后端分离项目后端demo网址 http://www.shrek11.cn:82微信端页面扫码:微信端功能未完成目前把代码整理后提交至github上,地址https://github.com/wushu0725/shrek-springboot-vue目前代码分 前端和后端,移动端代码找了仿ELM前端,也是用VUE写的,准备...原创 2019-01-25 15:30:19 · 5932 阅读 · 6 评论 -
前后端分离 开发模式的探讨
现在前后端模式都比较流行,但是怎么开发比较有效率了?以后维护起来也比较方便了,我推荐2个工具,一个是RAP2,一个是POSTMAN,RAP2是项目接口文档管理系统,项目经理或者产品经理等可以在开发之前根据你的需求和原型定义各种接口数据,包括入参,出参以及各个参数的意义。如果接口有任何改动,必须知会相关人等。重新生成新的测试数据。定义好以后,前端和后端就要根据定义好的接口...原创 2019-01-23 10:39:26 · 900 阅读 · 0 评论 -
springboot+vue 架构 (二)
很多后端项目互相调用都是传实体对象,比如增加,修改等 insert(BusSotp busStop)等。最近在GITHUB上看见也有很多人现在不传实体对象了像我上篇,VUE传到后端的是JSON格式,一般的做法是通过SPRINGBOOT的把JSON转成实体对象。那为什么不直接用JSON对象了controller层service层dao层myb...原创 2019-04-04 11:47:42 · 3080 阅读 · 0 评论 -
springboot+vue 架构 (三) springboot 多数据源配置
springboot里配置多数据源写2个数据源配置类,分别指到不同的DAO操作数据库文件mysql的@Configuration@MapperScan(basePackages = {"com.heeexy.example.dao.mysql"},sqlSessionFactoryRef = "mysqlsqlSessionFactory")public class MyBati...原创 2019-04-04 17:29:55 · 419 阅读 · 0 评论 -
mybatis plus 一对多分页查询问题
最近用mybatis plus做项目,单表的增删改查都正常,做到1对多表的分页时,用resultMap返回的时候发现返回的记录和总数对不上返回的记录是 一 表的,二返回的总数是 多 表查了一下,这个或者是PLUS的bug大概的解决办法如下图:用collection,传参用column,我这里用了一个小技巧,把外面传入的参数,作为主表的column传入到从表。这里...原创 2019-04-24 09:34:09 · 9650 阅读 · 0 评论 -
effective Java 笔记1 用静态工厂方法代替构造器
用静态工厂方法代替构造器原创 2019-08-12 15:56:01 · 193 阅读 · 0 评论 -
effective Java 笔记 导航
effective Java 是 Java之父James Gosling鼎力推荐,Jolt获奖作品全新升级第一章 创建和销毁对象用静态工厂方法代替构造器 遇到多个构造器参数时要考虑使用构建器 用私有构造器或者枚举类型强化Singleton属性 使用私有构造器强化不可实例化的能力 优先考虑依赖注入来引用资源 避免创建不必要的对象 清除过期的对象引用 避免使用终结方法和清除方法...原创 2019-08-12 15:56:58 · 188 阅读 · 0 评论 -
总结 项目中的技术方案选型和为什么
1,为什么要前后端分离。 1.1 前后端分离可以让开发人员更专注于自己的专业,开发效率更高 1.2 前端和后端分开部署在各自的服务器,性能更好2, 前端为什么用vue。 2.1 国人产的,支持国货 2.2 响应式编程,前端给客户体验更好 2.3 社区活跃度非常高,众多大神在后面支持你, ...原创 2019-09-21 18:46:21 · 1447 阅读 · 0 评论 -
MAVEN 引入外部包,并打包时引入外部JAR
最近做一个钉钉项目,引用官方的jar包,taobao-sdk-java-auto_1479188381469-20190926.jar需要项目引入外部包,而不是直接依赖引入maven库1,在项目下建立个LIB目录,把下载的包放进入,如下: 2,POM.XML文件引入本地包;<dependency> <groupId>com.dingtalk...原创 2019-10-11 20:05:39 · 2685 阅读 · 1 评论 -
redis学习
redis是什么:Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.red...原创 2018-11-18 21:08:37 · 202 阅读 · 0 评论