MarkerHub

其他

全网最全的 postman 工具使用教程

http://localhost/index.php/home/Uploadify/imageUp/savepath/head_pic/pictitle/banner/dir/images.html
2021年8月22日
其他

写个日志请求切面,前后端甩锅更方便

小Hub领读:不管是否是甩锅,任何时候日志管理都非常重要,有时候可以查看数据出错原因,又可以跟踪用户或管理员操作,实在居家必备良药!作者:何甜甜在吗https://juejin.im/post/5e69d5b5e51d45183840b351最近项目进入联调阶段,服务层的接口需要和协议层进行交互,协议层需要将入参
2020年7月29日
其他

从LocalDateTime序列化探讨全局一致性序列化

小Hub领读:我们都知道不同序列化工具,可能转化后得到的字符串是不一样的,那么我们就需要统一!作者:和耳朵https://juejin.im/post/5f14f6095188252e92024a39日拱一卒无有尽,功不唐捐终入海。楔子前两周发了三篇
2020年7月27日
其他

还在手动部署springboot项目?不妨试试它,让你部署项目飞起来!

info.log我们发现并没有输入我们打印的:“这是输出到文件的日志”,难道是我们配置错了问题?不是的,是因为我们找错了位置,真正的文件日志在容器内部,所以我们需要先进入容器内部docker
2020年7月26日
其他

为什么大家都说 SELECT * 效率低

小Hub领读:用什么字段,就select什么字段,养成好习惯!作者:陈哈哈blog.csdn.net/qq_39390545/article/details/106766965面试官:“小陈,说一下你常用的
2020年7月23日
其他

Up主发表新教程啦,SpringBoot入门到精通!

Hello,大家好,我是小Hub一明呀,很多人都关注了我的B站,现在我又上了新教程啦,主讲SpringBoot,以导图的形式为大家梳理和讲解。主要的内容包括以下:上面的都是课件哈,大家可以通过公众号回复关键字【B100】获取。然后B站上的视频是这样的:视频链接地址:https://www.bilibili.com/video/BV1cT4y1j7yJ/视频目录:1、课程大纲2、SpirngBoot基本概念3、新建SpringBoot项目4、手动装配之注解注入、@EnableXxx注入5、@EnableWebMvc装配解析6、@EnableCaching装配解析7、自定义基于注解驱动的@EnableXxx8、自定义基于接口驱动的@EnableXxx9、条件装配@ConditionalOnXxx10、自定义条件装配@ConditionalOnXxx11、手动装配总结回顾12、自动装配原理解析与配置过程13、SpringBoot启动准备阶段源码分析-构造方法14、SpirngBoot启动阶段源码分析-run方法15、启动阶段之@SpirngBootApplication注解源码分析16、SpringBoot学习内容总结17、自定义Spring的Event事件机制18、Hibernate
2020年7月22日
其他

分库分表【Sharding-JDBC】入门与项目实战

小Hub领读:Sharding-JDBC,这么主流的分库分表框架,你还不懂?来了解一下,然后入门吧!作者:六点半起床https://juejin.im/post/5edc9f3ff265da76bc760726最近项目中不少表的数据量越来越大,并且导致了一些数据库的性能问题。因此想借助一些分库分表的中间件,实现自动化分库分表实现。调研下来,发现Sharding-JDBC目前成熟度最高并且应用最广的Java分库分表的客户端组件。本文主要介绍一些
2020年7月21日
其他

有啥不同?来看看Spring Boot 基于 JUnit 5 实现单元测试

小Hub领读:在做项目开发和调试过程中,有时候不可避免会需要单元测试,你知道最新的Junit5怎么测试吗?作者:又语https://www.jianshu.com/p/4648fd55830e目录简介JUnit
2020年7月19日
其他

记一次Spring boot 和Vue前后端分离的入门培训

小Hub领读:公司就是好,有培训,学习新内容,这份笔记比较详细,很适合一些刚入门前后端分离的同学,收藏起来哈!作者:梁小生0101https://juejin.im/post/5c622fb5e51d457f9f2c2381由于公司之前是写
2020年7月18日
其他

实践:SpringBoot实现定时任务的动态增删启停

小Hub领读:我以为动态停启定时任务一般用quartz,没想到还可以通过ScheduledTaskRegistrar来拓展。但是分布式场景,建议还是用quartz吧!作者:jessehuahttps://www.jianshu.com/p/0f68936393fd在
2020年7月17日
其他

微服务统一登陆认证怎么做?JWT ?

小Hub领读:在大项目中,用户服务和认证服务也是分开的,你知道微服务中怎么做统一认证么?有多少种解决方案?作者:厚德载物cnblogs.com/zhenghongxin/p/10006697.html无状态登录原理1.1.
2020年7月16日
其他

Spring容器IOC初始化过程--今天终于进行总结了

//增加内置ApplicationContextAwareProcessor对象,忽略各种Aware对象,注册各种内置的对账对象【BeanFactory,ApplicationContext】等,
2020年7月14日
其他

好用到爆的 Java 技巧

userService.addUser(user);这两段代码都没有暴露实现,都是在讲如何在同一个方法中,做一组相同层次的语义操作,而不是暴露具体的实现。如上所述,是一种重构方式,读者可以参考
2020年7月13日
自由知乎 自由微博
其他

新手也能看懂的源码阅读技巧

小Hub领读:不管学什么框架、技术栈,没读过源码就不算精通!作者:青石路https://www.cnblogs.com/youzhibing/p/9553752.html读源码的经历刚参加工作那会,没想过去读源码,更没想过去改框架的源码;总想着别人的框架应该是完美的、万能的,应该不需要改;另外即使我改了源码,怎么样让我的改动生效了?项目中引用的不还是没改的
2020年7月12日
其他

Shell脚本结合Git实现增量项目部署

小Hub领读:脚本代码这么多,不是运维可能会真不会写哈哈。普通人用jenkins全量挺好的,但是代码过多时候就比较麻烦,而且jenkins一般也要配合脚本使用更加符合业务。作者:CatalpaFlathttps://juejin.im/post/5cf0ed996fb9a07eab68674f应用部署是开发、测试、上线必须面对的一个过程,尤其是微服务架构的出现,运维部署从单体的部署逐渐脱离出,并且越显复杂。然而,抛开多语言,多环境,集群,分布式的部署之外。就单单讨论增量部署和全量部署1.增量和全量部署部署,除却项目初始化部署,最理想的情况即为:新版本更改哪些内容则更新哪些内容1.1
2020年7月11日
其他

面试官:为什么 HashMap 的加载因子是0.75?

操作的次数。搜索公众号:MarkerHub,关注回复[vue]获取前后端入门教程!冲突的机会越大,说明需要查找的数据还需要通过另一个途径查找,这样查找的成本就越高。因此,必须在
2020年7月10日
其他

Spring / Spring boot 异步任务编程 WebAsyncTask

小Hub领读:其实嘛,我觉得使用@Async更加方便一点,哈哈~作者:拥抱心中的梦想https://juejin.im/post/5b230edde51d4558bc58bc14今天一起学习下如何在
2020年7月9日
其他

Spring Boot 应用监控,早发现早~~

小Hub领读:服务都需要监控,SpringBoot项目中,你常用哪些监控模块呢?actuator?admin?作者:小小____https://segmentfault.com/a/1190000022945443当一个
2020年7月8日
其他

浅析 VO、DTO、DO、PO 的概念、区别和用处!

JWT,从入门到精通!什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?万字长文教你如何干掉丑陋的try,catch,写出优雅的代码一篇来自前端同学对后端接口的吐槽Spring
2020年7月6日
其他

面试官:Thread.sleep(0) 有什么用?

则属于抢占式的。在时间片算法中,所有的进程排成一个队列。操作系统按照他们的顺序,给每个进程分配一段时间,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则
2020年7月5日
其他

SpringSecurity + JWT,从入门到精通!

模型即,RBAC1,RBAC2,两者模型全部累计,称为统一模型。什么是权限权限是资源的集合,这里的资源指的是软件中的所有的内容,即,对页面的操作权限,对页面的访问权限,对数据的增删查改的权限。
2020年7月4日
其他

什么时候线程不安全?怎样做到线程安全?怎么扩展线程安全的类?

小Hub领读:并发业务中,线程安全与否很重要,来看看你懂多少?作者:爬蜥https://juejin.im/post/5b7d68f66fb9a019d80a9002当多个线程去访问某个类时,如果类会表现出我们预期出现的行为,那么可以称这个类是线程安全的。什么时候会出现线程不安全?操作并非原子。多个线程执行某段代码,如果这段代码产生的结果受不同线程之间的执行时序影响,而产生非预期的结果,即发生了竞态条件,就会出现线程不安全;常见场景:count++。它本身包含三个操作,读取、修改、写入,多线程时,由于线程执行的时序不同,有可能导致两个线程执行后
2020年7月3日
其他

万字长文教你如何干掉丑陋的try,catch,写出优雅的代码

小Hub领读:好长的文章,但是值得一读,看看?作者:巨人大哥链接:cnblogs.com/jurendage/p/11255197.html背景软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try
2020年7月2日
其他

一篇来自前端同学对后端接口的吐槽

小Hub领读:企业接口规范有没统一定义,直接会影响到工作中的对接效率。今天来听听来自前端同学的吐槽,你有没也这种做过?哈哈~对了,还有一件事情要提醒下,今天6月30日,2020年已过一半!你的目标实现多少了?本文作者:李熠https://juejin.im/post/5cfbe8c7e51d4556da53d07f前言去年的某个时候就想写一篇关于接口的吐槽,当时后端提出了接口方案对于我来说调用起来非常难受,但又说不上为什么,没有论点论据所以也就作罢。最近因为写全栈的缘故,团队内部也遇到了一些关于接口设计的问题,于是开始思考实现接口的最佳实践是什么。在参考了许多资料之后,逐渐对这个问题有了自己的理解。同时回想起过去的经验,终于恍然大悟自己当时的痛点在哪里。既然是吐槽,那么请原谅我接下来态度的不友善。本文中列举的所有例子都是我个人的亲身经历。谁应该主导接口的设计或者更直白一些,应该是接口的消费方还是提供方来决定接口的设计?当然是接口的消费方「接口」最吊诡的地方在于提供方大费周章把它实现了,但它自己却(几乎)重来都不使用。于是这极易陷入一种自嗨的境地,因为他更本不知道接口的好坏。就好比一个从来不尝自己做的菜的厨子,你指望他的菜能好到哪里去,他的厨艺能好到哪里去。上面隐含的前提是(我认为)接口是有绝对好坏之分的,坏的接口消费者调用难受,提供者维护难受,还导致产品行为别扭体验变差。然而接口的好坏与谁来主导设计有什么关系?因为坏接口产生的原因之一是提供方只站在开发者的角度解决问题:例子一
2020年6月30日
其他

Spring Boot 最流行的 16 条实践解读,值得收藏!

小Hub领读:SpringBoot作为最受欢迎的框架,你对它了解多少?如何写出更加优雅的代码,看看这篇文章!作者:Jedrzejewski原文:www.e4developer.com/2018/08/06/Spring
2020年6月29日
其他

SQL查找是否"存在",别再count了,很耗费时间的

小Hub领读:没想到呀,我就是经常用count(*),太难了,处处都是细节呀~作者:程序猿囧途链接:http://suo.im/5T1tGv根据某一条件从数据库表中查询
2020年6月28日
其他

内容分类扩展性标签设计

小Hub领读:来看看表设计需要考虑啥,如何设计一好的表结构,学一学哈苏格团队作者:YaoLanghttps://juejin.im/post/5c94cc58f265da60d63eb017角色:产品汪小
2020年6月27日
其他

mysql数据库时间类型datetime、bigint、timestamp的查询效率比较

小Hub领读:来做个测试,比较一下数据库时间类型的查询效率如何嘿~作者:何甜甜在吗https://juejin.im/post/5bd6a089e51d45437252599e数据库中可以用
2020年6月26日
其他

总结!数据库缓存最终一致性的四种方案

小Hub领读:缓存与数据库数据一致性问题,一直是面试官很喜欢问的问题,你知道有多少方案,每种的优缺点是啥?最终会采用哪种方案较好,你觉得呢?作者:叶不闻https://juejin.im/post/5d5c99b66fb9a06ae072060d背景缓存是软件开发中一个非常有用的概念,数据库缓存更是在项目中必然会遇到的场景。而缓存一致性的保证,更是在面试中被反复问到,这里进行一下总结,针对不同的要求,选择恰到好处的一致性方案。缓存是什么存储的速度是有区别的。缓存就是把低速存储的结果,临时保存在高速存储的技术。如图所示,金字塔更上面的存储,可以作为下面存储的缓存。我们本次的讨论,主要针对数据库缓存场景,将以
2020年6月25日
其他

感受lambda之美,推荐收藏,需要时查阅

就是这么迷人。示例:本篇所有示例都基于以下三个类。OutstandingClass:班级;Student:学生;SpecialityEnum:特长。1.2
2020年6月24日
其他

用Spring Security, JWT, Vue实现一个前后端分离无状态认证Demo

小Hub领读:前后端分离项目必备的技术栈,你懂得怎么整合与运用吗?来看看这篇文章!作者:陕西颜值扛把子来源:https://zhuanlan.zhihu.com/p/95560389简介完整代码:https://github.com/PuZhiweizuishuai/SpringSecurity-JWT-Vue-Deom运行展示后端主要展示
2020年6月23日
其他

面试时写不出排序算法?看这篇就够了

小Hub领读:本文主要详细讲述常见的八种排序算法的思想、实现以及复杂度。包括冒泡排序、快速排序、插入排序、希尔排序等等,文章讲解非常详细!作者:静默虚空https://juejin.im/post/5cb6b8f551882532c334bcf2本文已归档到:「blog」:https://github.com/dunwu/blog/tree/master/source/_posts/algorithm本文中的示例代码已归档到:「algorithm-tutorial」:https://github.com/dunwu/algorithm-tutorial/blob/master/codes/algorithm/src/test/java/io/github/dunwu/algorithm/sort/SortStrategyTest.java冒泡排序要点冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算法思想它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢
2020年6月21日
其他

图解Spring解决循环依赖,认清IOC!

小Hub领读:Spring框架是所有java程序员都必须要懂的框架,都说ioc是核心,你知道如何解决循环依赖的问题么?看看这篇文章!作者:Vt原文:https://juejin.im/post/5e927e27f265da47c8012ed9前言Spring
2020年6月20日
其他

是真的猛!SQL 语法速成手册

小Hub领读:整理非常全面,原谅我书读得少,只能用一句卧*来赞美了!作者:静默虚空原文:https://juejin.im/post/5c7e524af265da2d914db18f本文针对关系型数据库的一般语法。限于篇幅,本文侧重说明用法,不会展开讲解特性、原理。一、基本概念数据库术语数据库(database)
2020年6月19日
其他

面试官:BigDecimal一定不会丢失精度吗?

小Hub领读:都知道Double会丢失精度,BigDecimal就不会么?希望你会正确使用!作者:HikariCP来源:www.jianshu.com/p/c81edc59546c我们基本已经形成了常识,需要用到金钱的地方要用
2020年6月15日
其他

通俗易懂讲布隆过滤器

1,怎么解决这个问题呢,那就要用到哈希函数,用哈希函数有两个好处,第一是哈希函数无论输入值的长度是多少,得到的输出值长度是固定的,第二是他的分布是均匀的,如果全挤的一块去那还怎么区分,比如
2020年6月14日
其他

高并发之API接口,分布式,防刷限流,如何做?

小Hub领读:高并发情况下,限流是很常见的,各种限流算法你都懂吗?来源:网络,不明在开发分布式高并发系统时有三把利器用来保护系统:缓存、降级、限流缓存缓存的目的是提升系统访问速度和增大系统处理容量降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开限流限流的目的是通过对并发访问
2020年6月13日
其他

重试机制!java retry(重试) spring retry, guava retrying 详解

小Hub领读:小明同学与产品经理的斗智斗勇过程,当接口有时候异常想重试,你会怎么办?随着需求的不断提出,怎么去迭代升级,看看这篇文章,写得很好!!一定要看完,哈哈!然后点个在看。作者:叶止水https://juejin.im/post/5b6ac0a06fb9a04f8a21b192系列说明java
2020年6月12日
其他

深度解析 Spring Boot 以及手写一个 starter

小Hub领读:我觉得这是SpringBoot的比较核心的功能了,就是这个starter,自动装配,让我们可以快速集成第三方框架,真是个好设计!作者:jack_xu来源:
2020年6月11日
其他

你真的会写单例模式吗?

小Hub领读:很常用,单例模式,你知道多少种,有考虑线程安全吗?作者:吃桔子的攻城狮来源:http://www.tekbroaden.com/singleton-java.html单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对
2020年6月9日
其他

从一笔金币充值去思考分布式事务,五种方案详解!

W+R>N,写的节点和读的节点重叠,则是强一致性。例如对于典型的一主一备同步复制的关系型数据库,N=2,W=2,R=1,则不管读的是主库还是备库的数据,都是一致的。如果
2020年6月7日
其他

又一经典开源项目Guns完全解读,小Hub好棒!

plusshirobeetlehcachejwt模块分析学习一个项目就是学习项目的亮点地方,在分析guns的过程中,有些地方值得我们学习,下面我们一一来分析:map
2020年6月6日
其他

前、后端分离权限控制设计与实现

小Hub领读:前后端分离越来越火了,得多发发这类型文章,跟上时代脚步,别落后了呀!作者:薛定谔的猫https://www.yuque.com/zhanghaofei/blog/xrpz9p简述近几年随着react、angular、vue等前端框架兴起,前后端分离的架构迅速流行。但同时权限控制也带来了问题。网上很多前、后端分离权限仅仅都仅仅在描述前端权限控制、且是较简单、固定的角色场景,满足不了我们用户、角色都是动态的场景。且仅仅前端进行权限控制并不是真正意义的权限控制,它只是减少页面结构暴露、增强用户体验的功效。场景系统为后台管理系统,包含了用户创建、用户登录、用户管理自己的资源。用户经常会新增、删除,也可以根据工作情况随时调整页面、功能权限,所以采用用户-角色-页面权限方案实现。为什么不行:根据前端路由表显示左侧菜单,但vue-router的路由表主要为了组织代码,经常我们所需要的菜单并非一致。比如某个前端路由a子路由有b、c,但菜单中我们想要直接一级菜单就显示b、c或者将b、c各放到其他菜单下。所以这种非常不灵活。一个路由是菜单还是页面?是否需要显示到菜单中?是否验证权限?哪个角色或者用户拥有权限?这些都需要写到前端路由里面,一旦有任何权限变动就要大量调整代码。如果权限写死在前端,那么角色或者用户必须已知且固定不变。比如页面1的meta增加属性标识可访问的角色为a和b页面一个页面即一个前端页面,比如首页、用户管理页、资源管理页等。基本思路为:前端路由保持不变,数据库存储菜单结构、页面权限控制(可以直接做成一个页面来方便管理)等,前端根据数据库中的菜单结构和权限信息来渲染一个菜单出来并只显示其有权限的菜单,并在路由守卫中进行权限控制防止手动输入path越权打开页面1、前端路由(vue-router)中需要正常创建页面及路由。2、数据库存储菜单结构和页面权限信息,菜单(目录、非内容页)可以自己创建,不必要求前端路由中有,因为这是指菜单的可视化的组织结构页面(内容页)必须是前端路由中已有页面,因为这是用户需要访问的内容。菜单和页面组成上下级关系,一级可以是菜单也可以是内容页,内容页也可以放在菜单下,不可见的内容页也可以放在一个普通内容页下,这样理论(需要页面菜单样式支持)可以组成无限级菜单。面包屑导航也根据此层级递归查询得到。菜单和页面的基本属性包括title(对应路由title)、name(对应路由name)、path(对应路由path)、父级、类型(菜单/页面)、是否可见(左侧菜单栏是否显示:部分页面可能是页面内的链接进去)、是否需要验证权限(部分页面比如首页无需验证权限大家都可以进入)不需要控制权限且不需要显示到左侧菜单的路由这里可以不进行管理,比如404页面等3、前台打开后获取获取数据库的所有菜单、页面及结构,根据是否登录、是否需要验证权限等进行控制,或无权限跳转至登录页4、用户登录成功后,再获取用户对应的的页面权限列表,使用上一步获得的所有页面、结构和用户拥有权限的列表渲染出一个菜单,只包含此用户拥有权限的,提升用户体检,避免显示大量用户不能访问的菜单影响使用和不必要的功能暴露。5、路由守卫中根据上一步获得的权限列表判断每个跳转,无权限可返回404或无权限页面,防止用户手动输入path越权访问页面管理:页面编辑:功能部分功能有事需要单独控制权限,比如用户管理页面可能允许多个角色查看,但是其中的"创建用户"功能只允许某一个角色使用,那么仅仅使用页面权限是不够。所以需要细粒度的功能权限控制。网上的方案都是说:根据资源控制增、删、改、查等等,比如针对用户就是用户的创建、修改、删除、查询等。但是在我的实际使用中发现并不切合实际,最起码对像我这种管理后台,资源并不单纯的增删改查,可能有其他地方的其他操作中也会对此用户资源造成影响,比如禁用、删除角色也要禁用、删除用户,那么这个权限到底属于角色的权限还是属于用户的权限,或者后台又改了,角色又影响了其他资源或者不再对用户进行操作,都会影响权限控制。超详细!4小时开发一个SpringBoot+vue前后端分离博客项目!!所以更合理的方法应该为将每个功能单独进行控制并和页面进行关联,且不限定必须是增、删、改、查四种,可以任意定制,只需要与前后端开发约定一个唯一的标识即可。如上的例子中,用户管理页面下有用户各种功能,角色管理页面中也有个角色禁用、删除功能,可以分别定义标识为roledisable、roledelete,如果拥有roledelete权限即可,即使没有userdelete权限,也可以直接删除用户,否则就不要给其role_delete权限。用户登录后,从数据库获取其所拥有的的权限列表并存入vuex,包含页面和功能对应关系,例如页面name为user:{user:
2020年6月4日
其他

高中生也能读懂的Docker入门教程

虚拟机的区别容器与虚拟机有着类似的资源隔离和分配的优点,但不同的架构方法使容器能够更加便携,高效等。虚拟机的架构每个虚拟机都包括应用程序、必要的二进制文件和库以及一个完整的客户操作系统
2020年6月3日
其他

终于有人把 HTTPS 原理讲清楚了!

只有认证机构可以生成证书吗?如果需要浏览器不提示安全风险,那只能使用认证机构签发的证书。但浏览器通常只是提示安全风险,并不限制网站不能访问,所以从技术上谁都可以生成证书,只要有证书就可以完成网站的
2020年6月1日
其他

知乎问答:难道非得包装简历?可是做不来~

说真的,这个社会,简历不稍微包装一下,还真拼不过别人,当然了,包装简历也是需要实力来支撑的,简历好看可以让你获得更多面试机会,而技术硬实力可以让你通过面试并获得高新。很多人都是中途转行的,你也得认清楚,很多公司就可能对这类人群的技术表示担心,所以公司不要你也很正常。一般别人社招都会找些能迅速上手工作的员工,公司要快速成长,不可能还给你太长的成长机会,或许等你成长起来可能你都跳槽了对吧,那么公司培养你是不是就亏了,所以公司需要的是有硬实力的员工。要知道世界没有什么公平不公平而言,电视上的牙膏广告还说刷起来有踏浪的感觉咧,其实也就那样,这就是产品包装呀。ok,我着重说了包装也不是要你包装很过分,冒充名牌大学毕业等。一般来说,培训出来的,都包装1,2年经验左右,实力也过得去。这样其实也挺好的,找到第一份工作稳定下来,以后工作中同时学习。让未来早来一点!不喜勿喷。感谢!另外:我的前后端分离开源项目vueblog已经在B站上线啦,欢迎去瞧瞧哈!顺便给我一个赞,感谢感谢哈
2020年5月31日
其他

从零开始搭建创业公司后台技术栈

强烈建议用付费版,阿里的那几十块钱的付费版基本可以满足需求。如果还需要一些按省份或按区域调试的逻辑,则需要加钱,一年也就几百块,省钱省力。如果是国外,优先选择亚马逊,如果需要国内外互通并且有自己的
2020年5月30日
其他

从入门到运用,Jwt其实并不难!

小Hub领读:2018年写的一篇文章,哈哈哈,体验一下我当时的写作风格咧~一般情况下,web项目都是通过session进行认证,每次请求数据时,都会把jsessionid放在cookie中,以便与服务端保持会话。前后端分离项目中,通过token进行认证(登录时,生成唯一的token凭证),每次请求数据时,都会把token放在header中,服务端解析token,并确定用户身份及用户权限,数据通过json交互。但是token一般都是UUID生成的一个随机码,作为一个key使用,从缓存中获取具体的用户信息。所以一般需要一个存储介质来保存token和用户信息。在一些场景中,如单点登录时候有点麻烦。有没一种更方便的方式呢?答案是有的,就是我们今天要讲的jwt。jwt也算是一个特殊的token,不过jwt中自带了用户的相关信息,所以不需要存储介质,只需要验证签名保证安全的前提下就可以直接获取到用户的相关信息。在讲jwt之前,我们先回顾一下session、token的相关内容。session与cookie我们都知道http是无状态的,所以需要某种机制来识别用户和保存用户的状态。而这个机制就是session。session是保存在服务端的,服务器通过session辨别用户,然后做权限认证等。那如何才知道用户的session是哪个?这时候cookie就出场了,浏览器第一次与服务器建立连接的时候,服务器会生成一个sessionid返回浏览器,浏览器把这个sessionid存储到cookie当中,以后每次发起请求都会在请求头cookie中带上这个sessionid信息,所以服务器就是根据这个sessionid所以key获取到具体session。google浏览器中查看cookie内容的方法有两个:(一)F12,查看具体请求链接的请求头信息(二)点击浏览器输入框的认证小锁,可以查看这个域名的相关cookie信息。涉及到集群环境得话,session需要弄成分布式session,从而保证多个应用的会话状态一致性。spring项目可以使用spring
2020年5月29日
其他

超详细!4小时开发一个SpringBoot+vue前后端分离博客项目!!

小Hub领读:前后端分离的博客项目终于出来啦,真是花了好多心思录制咧。文末直接进入B站看视频哈!这次你找不到不关注我B站的理由了吧?这次你找不到不星标置顶我公众号的理由了吧?作者:吕一明项目代码:https://github.com/MarkerHub/vueblog项目视频:https://www.bilibili.com/video/BV1PQ4y1P7hZ/转载请保留此引用,感谢!前后端分离项目文章总体分为2大部分,Java后端接口和vue前端页面,比较长,因为不想分开发布,真正想你4小时学会,哈哈。先看效果:不多说,开始敲代码。Java后端接口开发1、前言从零开始搭建一个项目骨架,最好选择合适,熟悉的技术,并且在未来易拓展,适合微服务化体系等。所以一般以Springboot作为我们的框架基础,这是离不开的了。然后数据层,我们常用的是Mybatis,易上手,方便维护。但是单表操作比较困难,特别是添加字段或减少字段的时候,比较繁琐,所以这里我推荐使用Mybatis
2020年5月28日
其他

点赞功能,用mysql还是redis?

小Hub领读:点赞是个很常见的功能,以前我在eblog中使用的点赞是先在redis中增长,然后定时同步数据库。那么除了这个还有其他方案吗?那你知道如何点赞去重吗?看看这篇文章。作者:一起web编程来源:https://www.toutiao.com/i6825148720728769028点赞功能是目前
2020年5月27日