自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MXH的博客

MXH的博客

  • 博客(47)
  • 收藏
  • 关注

原创 TKmybatis

TKmybatisTkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,不需要写任何sql语句Springboot 整合 TKmybatis引入TkMybatis的Maven依赖实体类的相关配置,@Id,@TableMapper继承tkMabatis的Mapper接口启动类Application或自定义Mybatis配置类上使用 @MapperScan(“package name”)注解扫描Mapper接口在application.propert

2020-06-19 17:52:48 7345 1

原创 初学Shiro

初学Shiro简介Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。Spring Security和Shiro的相同点与不同点整理spring security和shiro的异同基础架构Authentication:身份认证 / 登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户

2020-06-12 18:23:26 201

原创 Docker+kubectl+Minikube+Helm+Istio安装

Docker+kubectl+Minikube+Helm+Istio安装安装环境VMwareCentOS7 miniCPU 4核内存 4GDocker 安装yum install docker -ysystemctl enable dockersystemctl start docker更换阿里云镜像仓库,需要在阿里云注册vi /etc/docker/daemon.json阿里云Docker镜像,点击获取{“registry-mirrors”: [“https://xxxxxxx

2020-05-15 21:13:03 917

原创 初学 Kafka

初学 Kafka简介Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。链接常用消息队列介绍和对比Z

2020-05-15 17:29:09 198

原创 SpringCloud常用组件

SpringCloud常用组件Eureka 服务注册与发现Ribbon 客户端负载均衡Feign 声明式服务调用Zuul 服务网关Hystrix 断路器Config 分布式配置Eureka简介Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将...

2020-05-01 15:16:46 2468

原创 在容器中部署应用

在容器中部署应用使用VMware搭建虚拟节点从阿里云下载CentOS7 mini 版本镜像,新建虚拟机,配置CPU1核2,内存>=1G,硬盘>=10G配置虚拟网络,选择NAT模式,VMnet8、DHCP都要配置节点网络,开启网络,配置网关,静态IP,DNS,主机名,hostsvi /etc/sysconfig/network-scripts/ifcfg-ens33TY...

2020-04-24 17:59:01 797

原创 初学 Elasticsearch

初学Elasticsearch简介流行的企业级搜索引擎基于Lucene(一个开源的全文检索引擎工具包),使用Java语言开发,基于RESTful web接口,分布式多用户能力的全文搜索引擎作为Apache许可条款下的开放源码发布流行应用 ELK(1)Kafka:接收用户日志的消息队列。(2)Logstash:做日志解析,统一成JSON输出给Elasticsearch。(3)E...

2020-04-17 17:06:41 158

原创 20190708

7月8号,周一,实习第三天今天早上十点到了公司。第一件事,换座位,要挨着我的导师坐。见到了我的导师,是一位小姐姐,嘻嘻。小组会议,因为新同学比较多,要相互认识一下。补充一下,也是第一次见到组内老大。和导师聊了一下,个人基本情况,实习要做什么东西啊,要用到哪些技术啊。大组会议,大组长讲平台的发展方向,是自营还是合营,还是平台。B端怎么做,C端怎么做。讲到具体业务流程时就懵了。讲完十二...

2019-07-08 22:43:02 238

原创 20190705

7月5号,周五,实习第二天早上到公司有点早,公司还没有什么人。上班早高峰挤公交快被挤死了,以后不能来这么早了,10点到这就行了。到了公司,要办理入职的各种事情,一些琐碎事,就不说了。然后还是配置,熟悉开发环境,虽然具体的开发环境还是不知道怎么配。比较揪心的是,有些好用的软件还是不太情愿用正版。下午跟在外地的组长开了一次远程会议,主要说了一下需求。业务逻辑听不懂啊。然后就没什么事情了...

2019-07-08 22:41:56 104

原创 20190704

7月4日,周四,实习第一天本人今天入职某公司,这家公司是一家国内大型互联网公司,公司名字就不说了。9点到了公司总部,找到实习生办理入职的地方,等到九点半,有三四十人一起办理入职。然后HR开始讲有关实习的内容,比如实习合同,保密协议,个人信息确认,公司制度,福利等等吧。还要交好多的材料。说完已经十一点多了。跟组里老大打了个电话,说可以去上班了。然后从公司总部走到上班地点,大概要二十几分...

2019-07-08 22:40:16 130

原创 markdown存储图片

某图片网站被墙了,以前写的博客里的所有图片都不能显示了,为了避免类似事件再发生,还是将图片转成Base64存储吧。

2019-03-30 17:13:12 1374

原创 Spring MVC 自定义基本配置

Spring MVC 自定义基本配置添加其他的Servlet、Filter和Linstener(除DispatcherServlet和ContextLoaderListener外)import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRegi...

2018-11-28 18:00:19 260

原创 Spring MVC 处理异常

Spring MVC 处理异常将异常映射为HTTP状态码映射前public class MyException extends RuntimeException { private static final long serialVersionUID = 1L;}@Component@RequestMappingpublic class Controller { @Reque...

2018-11-28 17:29:13 129

原创 Spring MVC 重定向 传输数据

Spring MVC 重定向 传输数据URL方式原理将数据放到URL上,只能放普通类型数据,无法复制对象代码import org.springframework.stereotype.Component;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestM...

2018-11-28 16:55:08 164

原创 JMS 初步

JMS 初步简介百度百科上对JMS的简介:JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。百度百科上对ActiveMQ的简介:Active...

2018-11-23 15:52:54 113

原创 使用RowSet

使用RowSet为什么要使用RowSetRowSet扩展了ResultSet接口,因此它的功能比ResultSet更加强大。RowSet对表数据的遍历更加灵活,可前后滚动。RowSet支持缓存数据,即在connection关闭后也可以使用。RowSet支持新的连接方式,不需要connection即可连接数据库,还支持读取xml数据源。RowSet支持filter(过滤数据)。RowS...

2018-11-22 17:43:41 1100

原创 Jedis 远程连接 Linux系统中的 Redis

Jedis 远程连接 Linux系统中的 RedisJedis Hello Worldimport static org.junit.Assert.assertEquals;import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;public class JedisHelloWo...

2018-11-22 17:16:56 573

原创 使用 H2 DB 来做单元测试

使用 H2 DB 来做单元测试H2 是一款嵌入式数据库。当然它也可以C/S方式运行,但这种方式并不常用,因为Oracle、SQL Server、MySQL等产品在这方面比它强大的多。我们一般喜欢用它来做单元测试,更喜欢把它的数据库放在内存中,因为这样访问速度快,而且每次启动程序得到的数据库都是一致的。创建内存数据库并使用@Testpublic void useH2() throws Cla...

2018-11-21 18:04:57 3675

原创 Tomcat9 JNDI 配置数据源 并 应用到Spring JdbcTemplate

Tomcat9 JNDI 配置数据源 并 应用到Spring JdbcTemplate修改Tomcat9 的 content.xml 文件<Resource name="jdbc/scn" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="5" maxWaitMillis="10000&qu

2018-11-19 12:13:46 1227 1

原创 安卓应用调用QQ登录接口

安卓应用调用QQ登录接口注册成为开发者并提交APP审核先在QQ互联网站注册成为开发者,进行邮箱验证此时你填写完信息后只是保存到腾讯服务器了,而没有提交审核,你个人信息状态显示未提交审核,提交审核,并等待,一般很快就会通过。审核通过后就可以创建自己的应用了,关于生成APP签名的问题,腾讯提供了一个工具,很方便。创建应用后再提交审核,审核过后该应用就可以使用QQ登录接口了审核过程很快的,...

2018-11-01 21:52:42 3064

原创 多分派技术及其应用——访问者模式

多分派技术及其应用——访问者模式分派是什么分派就是在调用一个方法(把调用方法看成是一个请求)时,确定请求接收者以及确定要执行哪段代码的问题。乍看起来,这个解释很蠢(调用哪个方法不就是执行哪个方法的代码吗?),思考之后却有道理。比如:class Show { public void print(Integer i) { System.out.println(i); } public...

2018-10-13 11:35:37 185

原创 Apache Commons CLI 如何处理无选项名的参数

Apache Commons CLI 如何处理无选项名的参数形如 java class文件 命令class文件 就是没有选项名的参数,那么如何使用CLI来解析呢?像这样的参数是不需要在定义阶段定义的,CLI在解析的时候会把这类参数存入一个集合内可以通过CommandLine的getArgs(List)方法来获取这个数组(集合)来处理String[] argArr = commandLin...

2018-09-27 13:52:35 519

原创 使用 Apache Commons CLI 来解析命令行参数

使用 Apache Commons CLI 来解析命令行参数入门介绍命令行处理有三个阶段。它们是定义,解析和审讯阶段。定义每个命令行必须定义将用于定义应用程序接口的选项集。CLI使用Options类作为Option实例的容器 。在CLI中有两种方法可以创建Option。其中一个是通过构造函数,另一个是通过Options中定义的工厂方法 。定义阶段的结果是Options实例。解析...

2018-09-27 13:44:57 5544

原创 UML精粹之类图

UML精粹之类图本博客源自《UML精粹》一书,向Martin Fower致敬。UML图使用PlantUML的DSL绘制。类的属性:形如:visibility name: type multiplicity = default {property-string}示例:- name: String [1] = "Untitled" {readOnly}visibility: public(...

2018-09-18 10:49:29 964

原创 组合方法

组合方法在面向对象的编码中,我们更倾向于使用小方法,并用小方法来组合成另一个小方法,组合而成的这个方法就被称为组合方法。我觉得组合方法也可以当做动词来理解,这里就不赘述了。这也算是一种模式,一种简单得被人嘲笑的模式。那我们应该如何组合,才能使代码结构更清晰,更易理解呢?绝大多数实现组合方法的重构都涉及到提炼函数、方法内联化重构。在编码中,我们也许会遇到一些大方法,行数有几十行之多(一个方法的代...

2018-09-18 09:38:34 1128

原创 使用Lombok

#使用Lomboklombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码(比如setter代码和getter代码)的工具。##Lombok的使用###安装下载Lombok的jar包java -jar 命令运行该jar包,这会启动一个图形化界面,Lombok的安装程序,它会寻找eclipse程序,找到后进行安装安装完成,重启eclipse,...

2018-09-17 20:12:06 2488

原创 Java并发编程 避免活跃性问题

Java并发编程 避免活跃性问题在安全性与活跃性之间通常存在着某种制衡我们使用加锁机制来确保线程安全,但过度的使用加锁,则可能导致锁顺序死锁使用线程池和信号量来限制对资源的使用,可能导致资源死锁Java应用程序无法从死锁中恢复过来10.1 死锁经典的哲学家进餐问题,每个人都拥有其他人需要的资源,同时又等待其他人已经拥有的资源,并且每个人在获得锁需要的资源之前都不会放弃已经拥有...

2018-09-15 20:00:35 200

原创 Java 泛型 ? E T K V Object

Java 泛型 ? E T K V Object? 表示不确定类型,和Object类型不同E 一般表示Element,T 一般表示Type,K一般表示Key,V一般表示Value,不过这些可以混用,没有限制Object则是包含所有类型三种List的生命方法List<?> list1;List<E> list2;List<Object> l...

2018-09-14 22:52:52 1618

原创 使用Cactus测试Servlet 入门

使用Cactus测试Servlet 入门Maven依赖:<!-- Cactus使用的是JUnit3,也可以使用JUnit4,因为JUnit4兼容JUnit3 --><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>...

2018-09-13 19:45:58 679

原创 重构实现Command模式

重构实现Command模式一个简单的场景描述请求者发送请求,接受者接收请求,并作出响应,这有点类似于Web中的get和post等请求。一般,我们会使用条件判断语句来处理请求,if请求类型为这个,就执行这个方法,else if请求类型为那个,就执行那个方法,这种做法的一大优点是简单、直观。使用条件语句处理可能带来的问题当处理请求的种类太多时,需要使用大量的if el...

2018-09-10 20:32:08 109

原创 去除多余的Singleton(Java篇)

去除多余的Singleton(Java篇)Singleton简单、实用,学过设计模式的我们都可以轻松的使用Singleton模式来创建单例,并提供它的全局访问方法。使用Singleton时,我们往往只注重它的单一性,而忽视了它的可见性,Singleton相当于一个全局变量,过多的全局变量会使人害怕。当一个对象在多处使用时,注意我所说的多处而不是全局,我宁愿把对象引用当作参数传来传去,也不...

2018-09-05 20:36:43 206

原创 浅谈Builder模式(Java篇)

浅谈Builder模式(Java篇)Factory主要通过选择构造方法来创建合适的对象,而Builder负责更复杂的创建行为,比如设置对象的属性。一个简单的JavaBean,只有get、set方法,我们可以使用它的构造方法或是一系列的set方法来创建它,但它的字段过多时,这样创建就很麻烦,这时我们就可以使用Builder来封装它的创建过程。我认为Builder就是对类复杂创建行为的封装,...

2018-09-05 20:12:55 976

原创 用Factory来创建对象(Java篇)

用Factory来创建对象(Java篇)最简单的对象只有一个无参的构造方法,我们可以轻松new出一个对象。当构造方法不能满足当前创建需要时,我们会为对象增加构造方法,这时我们想new出一个对象,就要考虑使用哪个构造方法了。当有多个构造方法时,我们可以找出构造方法之间的关系,用参数少的构造方法来调用参数多的构造方法,通过内联方法来重构代码。当一个类的构造方法过多时会造成混乱,因为Java类的构...

2018-09-05 19:51:52 1391

原创 Java方法返回值前面的<T>是什么?

Java方法返回值前面的&amp;amp;lt;T&amp;amp;gt;是什么?它的作用是“定义泛型”一段简单的代码class Show&amp;amp;lt;T&amp;amp;gt; { public void print1(T t) { System.out.println(t); } public &amp;amp;lt;T&amp;amp;gt; void print2(T t) {

2018-08-26 18:26:19 7725 9

原创 Java并发编程实战-线程安全性-一章总结

Java并发编程实战-线程安全性-一章总结

2018-08-15 17:36:58 400

原创 如何快速地在eclipse中创建maven 动态web项目

如何快速地在eclipse中创建maven 动态web项目1.先创建一个动态web项目File -&gt; new -&gt; other -&gt; select”Dynamic Web Project” -&gt; 输入项目名,next —&gt; 根据需求创建目录,next -&gt; 勾选生成web.xml -&gt; finish2.将项目转化为maven项目右键...

2018-07-16 20:47:51 199

原创 重构之以函数对象取代函数

以函数对象取代函数重构导图代码/** * 重构前 */class Account { int gamma(int inputVal, int quantity, int yearToDate) { int importantValue1 = (inputVal + quantity) + delta(); int importa...

2018-06-29 11:14:38 502

原创 MPI_Allgatherv函数讲解

MPI_Allgatherv函数讲解#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;mpi.h&amp;gt;/* * 收集所有任务的数据并将组合数据传送到所有任务 * int MPI_Allgatherv(const void * sendbuf,int sendcount,MPI_Datatype sendtype, * void * recvbuf,c...

2018-06-24 20:17:54 6521

原创 重构代码之提炼函数

重构代码之提炼函数图一图二(接图一)

2018-06-24 18:32:43 471

原创 按行与按列遍历二维数组的速度差异

按行与按列遍历二维数组的速度差异1.代码(c语言、Linux环境)#include&lt;stdio.h&gt;#include&lt;malloc.h&gt;#include&lt;sys/time.h&gt;#include&lt;sys/resource.h&gt;// 从进行开始执行到完成所经历的墙上时钟时间(wall clock)时间,// 包括其他进程使用的时间...

2018-06-19 14:56:08 6312 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除