编程之路
文章平均质量分 54
一个偏执狂
这个作者很懒,什么都没留下…
展开
-
TimSort 排序算法
之前给数组排序写比较方法时,出现了一个报错:Comparison method violates its general contract!然后报错提示到TimSort.mergeHi()方法抛出的异常,于是我就开始溯源问题,顺便研究一下世界上最快的归并排序——TimSort排序的实现。首先在java的bug中第一次发现了TimSort的说明文档:https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6804124http://svn.pyt原创 2021-03-07 16:14:13 · 1154 阅读 · 0 评论 -
常用排序算法实现
好久没有写博客了,就以这篇最近突发奇想的常用排序算法总结做回归吧。以下是代码import java.util.concurrent.TimeUnit;/** * @Auther: yubotao * @Description: * @Date: Created in 19:28 2021/02/21 * @Modified By: */public class SortTest { private static int[] a = {2,3,5,1,6,2,4,7,5,7,3,原创 2021-03-07 15:20:23 · 341 阅读 · 1 评论 -
spring security学习总结
这段时间了解了一下spring security以及oauth 2.0的相关内容,特在此总结,以供之后查阅。spring oauth 2.0会另开一篇文章。首先声明,这段时间看了很多资料,但是最后只是在宏观上大致的把握了一下方向,对于绝大部分的技术细节都没有去了解,毕竟时间有限。所以本文也就是能说明白spring security的简单工作原理,大概也就这个程度了。废话到此为止。本文参考的...原创 2018-07-30 16:45:19 · 734 阅读 · 0 评论 -
使用zxing生成二维码的轮子。。
今天无意间接触到二维码生成了,这个日常如此常见的东西,怎么能不了解一下呢?所以我就找了一篇zxing的博客,然后找到了一个轮子,这里就收下啦~ 原文地址:RexFang的zxing轮子 另外参考了:这篇文章工具类FileUtil.javapackage com.yubotao;import org.apache.commons.lang3.StringUtils;import...转载 2018-05-31 15:30:41 · 450 阅读 · 0 评论 -
hibernate学习笔记
本文参考博主李阿昀的专栏完成。项目的Github地址。直接简单的说了,详细内容去看专栏,写的非常棒!关键内容配置文件两个关键配置文件: 1.xxx.hbm.xml:它主要是用于描述类与数据库中的表的映射关系。(如果在实体类中使用注解,则不需要该配置文件,推荐注解方式)<?xml version="1.0" encoding="UTF-8"?><!D...原创 2018-06-21 18:02:05 · 201 阅读 · 0 评论 -
springboot 整合mybatis
本文参考该文章只是给自己参考备用,想知道详细步骤的,请去原文。相对于原来的SSM框架,整合spring boot就显得更加简洁。 稍有区别的地方就在于: 新建的时候选择spring模板,然后勾选Web、MySQL、MyBatis、JDBC,至此,项目构建完成。pom文件中需要加上数据库连接池的依赖。如果使用mybatis自动生成代码的话,还要配插件,可以参考之前的文章。 这...原创 2018-06-04 16:19:41 · 187 阅读 · 0 评论 -
整理阿里k8s沙龙的相关知识
k8s架构master节点主要部署管控类应用,以稳定性为主。包含组件:etcd:存储所有集群数据。kube-apiserver:暴露k8s的API,这是k8s控制平面的前端,可水平扩展。kube-scheduler:调度器,当有一个新建pods没有注册到node上时,为它安排一个;调度因素有资源需求、软硬件及规则限制、数据本地化等等。kube-controller-ma...原创 2018-05-22 10:18:10 · 571 阅读 · 0 评论 -
docker在centos7安装及常用命令
因为docker安装包下载要翻墙,所以这里用了国内的镜像源。先看docker如何在centos7上进行安装:准备工作1.备份yum下载源:$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2.获取阿里的国内源:$ wget -O /etc/yum.repo...原创 2018-05-21 15:19:55 · 317 阅读 · 0 评论 -
kubectl常用相关命令
以下命令中 -n &amp;lt;namespace&amp;gt;为可选参数,没有的话,默认为default。kubectl get pod(service/deployment/rule/servicerole/.....) -n &amp;lt;namespace&amp;gt;获取资源信息列表 kubectl delete pod(...) &amp;lt;podName(serviceName/.....原创 2018-05-21 15:03:32 · 4605 阅读 · 0 评论 -
spring cloud 升级config-client及部署问题
接昨天,升级微服务到config-client又遇到一些问题,花了大半天的时间。其实,不该花这么久的,所以还是踩坑了。。直接说问题吧。rabbitmq连接报错主要有几个报错,原因应该都是未连接上rabbitmq导致的org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connec...原创 2018-04-12 15:46:31 · 1695 阅读 · 0 评论 -
记一次基于阿里云云效上的spring config部署
最近由于工作需要,需要为公司的微服务集群上spring config,大概说一下整个实现过程,中间有好多的坑,我就逐个击破。当然我的方法绝对不是最优解,属于暴力求解,所以解决方案很不优雅,但是目前只能做到这种程度了,比较急。这篇博客也比较长,请做好心理准备。首先,我们从描述需求开始:场景是这样的,我们需要依托于阿里云的云效平台部署各个微服务,而每个微服务的构建也是一个不小的坑,对于未接触过的人...原创 2018-04-11 16:19:13 · 2216 阅读 · 2 评论 -
Interceptor
这篇主讲拦截器,在讲拦截器之前,顺便提两句监听器和过滤器。拦截器、监听器、过滤器过滤器(Filter):当你有一堆东西的时候,你只希望选择符合你要求的某一些东西。定义这些要求的工具,就是过滤器。 举例:在web.xml中会有很多过滤器,比如字符过滤器;比如对请求方法进行过滤的过滤器等。 拦截器(Interceptor):在一个流程正在进行的时候,你希望干预它的进展,甚至终止它进行,...原创 2018-02-27 21:40:07 · 207 阅读 · 0 评论 -
Cookie
今天讲讲Cookie,Cookie太常见了,你就去超市去找,我最喜欢吃的就是趣多多,没办法,穷啊。。。啊,不好意思,今天讲Cookie。Cookie简介Cookie的常用场景是什么呢?我一说你就明白了。我们在各大网站登录的时候,有的时候下面会有记住我,十天内等等选项啥的;Cookie就是干这个用的,如果你有什么刻骨铭心的想要记住的人,我建议你把TA放到Cookie里。但是你必须要设...原创 2018-02-27 18:41:23 · 274 阅读 · 0 评论 -
Spring Security OAuth 2.0学习总结
继上一篇Spring Security的文章,这次聊聊Spring Security OAuth 2.0,当然还是只能简单聊聊,比较基础和片面。首先说一下主要参考的文章: 阮一峰的《理解OAuth 2.0》 徐靖峰的《Re:从零开始的Spring Security Oauth2系列》 Spring的《OAuth 2 Developers Guide》也就是说,还是拾人牙慧。OAu...原创 2018-08-01 16:53:38 · 7197 阅读 · 0 评论 -
简单了解thymeleaf
最近花了点时间了解了一下Thymeleaf的简单应用,毕竟现在jsp大势已去,spring官方也在推Thymeleaf,简单的掌握一点知识,以后会用到。而且现在公司项目中已经涉及到了,虽然比较简单。这个文章大概参考了两篇文章,一篇是:入门例子;另一篇是:表单提交。主要涉及到的标签只有,th:text——取值,th:object——取对象,th:if——条件判断,th:each——循环取值,...原创 2018-09-12 11:52:44 · 573 阅读 · 1 评论 -
ajax实现前后端交互
本来昨天试着写了,也成功了,但是今天自己新建项目来专门写博客的时候还是遇到了些麻烦,所以坑还是要一个一个踩,然后一点一点爬。虽然这个内容好像没啥难度,但是毕竟作为前端知识为0的我,写这个简单的项目还是花了大力气啊。首先,Ajax作为异步交互的常用手段,应该是一个合格的web工程师应该掌握的技能,奈何,我还在通往合格的路上,所以今天就献丑了。Github项目地址。项目结构...原创 2018-09-13 14:53:17 · 4406 阅读 · 0 评论 -
初次接触存储过程
最近有个需求需要查数据库中的数据,然后需要对一个结果集进行循环比对,使用sql语句已经无法满足需求了,所以大概看了一下存储过程的相关内容,这里需要特别感谢这篇文章,基本是以它为蓝本完成的。创建存储过程的格式create procedure name(param...)begin...end定义全局变量declare name varchar(32);创建临时表CREATE T...原创 2019-04-25 16:49:53 · 281 阅读 · 0 评论 -
sql的case when和left join
总结一下昨天写sql时新接触到的知识点。SELECT c.`name` AS '客户姓名', c.customer_adderss AS '客户地址', c.phone AS '客户联系电话', c.serial AS '客户编码', o.material_name AS '物料名称', o.material_serial AS '物料编码', o.material_single_...原创 2019-05-08 11:08:57 · 10014 阅读 · 0 评论 -
简单了解Serverless
这两天在了解serverless,所以大概看了不少的文章,主要了解了一些概念性的知识。这里简单的记录一下。介绍Serverless是一种新兴起的架构模式。它是指明显或充分地依赖第三方应用或服务来管理服务器端逻辑和状态,可以让你在服务部署级别而不是服务器部署级别来管理你的应用部署,甚至可以让你管理某个具体功能或端口地部署,能够让开发者快速迭代,更快速地开发软件。总结下来,不需要处理运维方面的事...原创 2019-01-04 16:23:55 · 806 阅读 · 0 评论 -
spring oauth2实现数据库存储token
之前我有写过一篇关于spring oauth2的学习笔记,当时的实现是使用了在内存中定死了用户,然后将token存到redis中,可以说是一种比较简单的实现方式。这篇文章是在之前的基础上迈了一小步,可以实现从数据库读取用户,并将token存储到数据库中。这样就可以满足一般的基本生产需求了。当然还有更加深入的将client信息保存到数据库,使用jwt等等,由于我没有深入的了解,并且也不需要如此复...原创 2018-12-18 15:49:28 · 5817 阅读 · 2 评论 -
按照对象属性顺序传递json
上午刚好碰到这个问题,简单的查了一下,然后记录一下。参考文章由于前后台数据传递都是以json形式互相通信,所以就涉及json传递数据的属性排序问题。以下测试使用阿里的fastjson。首先使用JSONObject的put方法,一开始我以为是按照字符顺序排序的,但是经过测试发现并不是这样根据测试结果可以看出,应该是内部实现的时候,排序方法就有一定的问题。当我们在controller中...原创 2018-12-07 14:24:04 · 2825 阅读 · 1 评论 -
Consumer Acknowledgements and Publisher Confirms
(Consumer) Delivery Acknowlegements当Rabbit MQ向consumer发送message时,它需要知道何时可以认定message已成功发送。在AMQP 0-9-1中,使用basic.consume方法注册一个consumer,或通过basic.get按需获取message。Delivery Identifiers: Delivery Tags当一个con...翻译 2018-12-03 16:30:36 · 567 阅读 · 0 评论 -
Queues
NamesQueues 有名字,这样应用才能引用它们。应用可能自己取名或者让broker为它生活吃呢过一个名字。Queue名字最多可包含255个字节的UTF-8字符。以“amq.”开头的queue名字是broker内部预留的。试图违反规则声明一个这样名字的queue 会导致一个channel级的异常,返回码为403(ACCESS_REFUSED)Server-named Queues在A...翻译 2018-12-03 16:22:30 · 1197 阅读 · 0 评论 -
关于spring boot rabbitmq的学习使用
最近由于工作需要接触了RabbitMQ,并简单的进行了尝试。所以记录一下学习到的相关知识。在一切开始之前,我们先看一下为什么需要使用消息队列?https://blog.csdn.net/songfeihu0810232/article/details/78648706http://www.cnblogs.com/xuyatao/p/6864109.htmlGitHub测试代码Rabbi...原创 2018-12-03 16:11:46 · 357 阅读 · 0 评论 -
springboot中使用aop
参考文章最近接触到aop的使用,所以写点东西记录一下,虽然在spring mvc时代用过aop,但是毕竟大势已去,现在需要追赶潮流。从各方面讲,差距都不是很大,只不过springboot 用的都是注解,可能更方便些。以前印象中,springmvc的aop是可以用来实现事务和日志通知的,但是现在springboot对于事务的处理有了更好用的注解@Transactional,所以我们就简单的看看...转载 2018-11-24 14:13:31 · 462 阅读 · 0 评论 -
单链表反转的Java实现
今天群里大佬给我抛出了一个问题,单链表反转。非常仁慈的给了我10分钟的时间,结果我连链表的数据结构都没写完,果然我还是太菜了。虽说我也是看过数据结构的,但是一,时间有点久了;二,当时看的时候就没怎么写代码。所以欠的债要还,硬着头皮也要写。最开始我就冒出了一个想法,及其幼稚,思路就是从链表中取值,然后把所有值在外部排序完,再放回链表中,但是我一看这根本就是离题了啊!可是暂时没有什么别的想法,...原创 2018-09-27 15:56:24 · 594 阅读 · 0 评论 -
关于异常处理以及针对spring security oauth 2的401错误进行页面跳转
由于最近遇到了新问题,还折磨了我两天,所以这里就简单的记录一下⑧错误集中处理由于系统需要,所以为项目添加了一个错误集中处理配置前情提要spring boot : 2.0.3.RELEASE参考文章首先根据spring boot版本的不同,以1.4.0为界是有不同的配置方式的,这里由于用的是2.0.3.RELEASE,所以配置如下。package com.yubotao.spring...原创 2018-10-11 18:21:48 · 10036 阅读 · 4 评论 -
Go在Linux下的环境变量配置
2017.12.19补:这个比较严谨,传送门 因为工作,所以最近开始接触golang,今天在Linux下配置了一下Go的环境变量,主要参照blog:传送门这里主要记录一下需要做什么:下载tar文件什么的不说了,将go解压到/usr/local下。 新建一个文件夹,名为gopath,然后在该文件夹下通过命令再新建三个文件夹:mkdir -p bin src pkg接下来就是关键了,配置环境变量:原创 2017-12-18 22:49:31 · 8647 阅读 · 0 评论 -
mybatis的自动生成插件
mybatis是一个简单易用的优秀框架,但是我们可以让它更优秀的为我们服务,今天介绍的就是mybatis的一个神奇插件,使用它可以减少我们很多工作量,无需我们手动编写代码就可以实现自动生成。不过这里自动生成的都是简单方法,如果需要更复杂的sql语句或者实现,还是需要手动去添加的,但是已经为我们减少了很大一部分的工作量了。话不多说,开始讲解。mybatis的代码自动生成首先开一下我们在使用插件前需要做原创 2017-12-05 15:01:22 · 1075 阅读 · 0 评论 -
Bug集中营
这篇blog作为自己以后使用方便创建,分类整理一路上遇到的各种bug,如果以后遇到相同或相似的问题,有据可查。由于有比较多的bug之前未来得及整理,所以这里记录的可能仅仅只是一小部分bug,或者还包含开始的一些很初级的bug,但是随着时间的延长,这篇blog会越来越长,以后遇到难以处理的bug,一律在此登记。maven1.不清楚maven的项目结构,配置文件没有放置在resourc...原创 2017-09-26 21:54:22 · 628 阅读 · 0 评论 -
微信公众平台开发的部分知识
最近项目开发的时候涉及微信公众平台的开发,在这个学习过程中遇到了很多问题,了解清楚这部分,大概用了一个多星期,中间遇到很多问题,比较痛苦,网上的资料比较杂乱,导致查阅的时候遇到很多障碍,但是还是耐着性子完成了项目中涉及到的内容,在此记录并分享,为了以后回顾,也希望能够帮助到你。微信公众平台首先让我介绍一下微信公众平台,这里是微信公众平台的官方文档。 微信公众平台是腾讯基于微信公众号推出的相关业务,原创 2017-12-04 16:33:23 · 516 阅读 · 0 评论 -
使用shiro拦截器链实现权限管理
在开篇之前,先介绍一下shiro,那么什么是shiro呢? Apache Shiro(发音为“shee-roh”,日语“堡垒(Castle)”的意思)是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障 - 从命令行应用、移动应用到大型网络及企业应用。原创 2017-12-04 11:00:18 · 18115 阅读 · 7 评论 -
SpringMVC简例HelloWorld~
由于SpringMVC的内容太宽泛,太大了,所以这里就先写个小demo,可以讲一些简单的东西,不影响使用,又不用讲解的太过详细、深究过深。 那么,就开始吧~ 这里只讲例子,不讲太深的原理,那些会在另一篇开讲。 下面直接看一下这个小demo吧。前期准备 建立SpringMVC项目是需要一些准备的,不是一下子就可以完成的哦~原创 2017-09-27 00:13:40 · 287 阅读 · 0 评论 -
Spring介绍
Spring,春天~ 开玩笑,怎么可能是春天啊喂,那是弹簧? 别逗了 那是什么? Spring,是一个企业级框架,它的出现是为了简化操作,使开发更容易,最关键的是,它是开源的。 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架 大家都喜欢使用这张图,那我也摆一下吧 上图是Spring七大模块明确定义,虽然我还没有完全原创 2017-09-24 02:02:43 · 686 阅读 · 0 评论 -
JDBCTemplate实现增删查改
转载注明出处今天终于把这两天一直困扰我的问题解决了,就是利用JDBCTemplate实现增删查改,对数据库进行操作。直接进入正题先贴框架需要导入的jar包junit;spring-context;spring-jdbc;mysql-connector-java。然后是代码部分Student.javapackage com.jdbct;原创 2017-07-09 21:56:31 · 2823 阅读 · 1 评论 -
Mybatis初级应用——实现增删查改
转载注明出处前两天学习了mybatis连接数据库,实现增删查改,和前面的文章JDBC实现增删查改有异曲同工之妙,在此记录,遗忘的时候翻一翻。首先,还是建项目,什么项目?maven项目,不讲了,去翻前面的文章。直接贴项目结构然后是导入jar包mybatis包是一定要的;mqsql-connector-java也是必须的;junit包就更不用说了;还有1.8原创 2017-07-09 00:14:35 · 518 阅读 · 1 评论 -
JDBC实现增删查改实例
一个要求:转载注明出处一、JDBC?什么玩应?JDBC(Java Database connectivity),java数据库连接,java中用来规范客户端如何访问数据库的应用程序接口。简单讲,用来执行sql语句的一类java API。那我们了解了JDBC用来和数据进行连接,并且能够执行sql语句,是不是要学学sql语句呢?那么请你关掉这个网页,百度搜索sql语句。原创 2017-07-07 23:50:56 · 1629 阅读 · 1 评论 -
maven浅谈
一个要求:转载请注明地址 好,黑喂狗~ 这篇文章只是简单的把这几天学习maven收获的东西分享一下,希望能帮助到需要的人。一、自然是maven配置问题还是先说下载吧。如图直接点击百度经验,全是经验!不然就点第二个官网,然后去学英文! 下载完成后,配置maven。如图直接点经验,要是懒得点,那就看我的秀逗操作吧。 算了,还是看经验吧...原创 2017-07-07 22:30:11 · 451 阅读 · 0 评论 -
使用Git,并且与GitHub建立连接
今天用了Git实现项目管理,并且提交到远程库中,所以记录如下算了还是直接贴链接吧。。。http://blog.jobbole.com/78960/文章内容如下:(怕链接失效了)一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中转载 2017-07-20 23:47:10 · 368 阅读 · 0 评论 -
转发Mybatis的学习教程链接
http://www.cnblogs.com/shanheyongmu/category/877813.html点击打开链接转载 2017-07-07 11:42:35 · 299 阅读 · 0 评论