- 博客(27)
- 收藏
- 关注
原创 RedisTemplate提供的API列表
字符串相关APIAPI描述set(K key, V value)新增一个键值对,key为键,value为值get(Object key)获取指定key对应的值append(K key, V value)在原有值的基础上新增字符串到末尾get(K key, long start, long end)获取key键所对应value从start位置开始到en...
2019-10-20 19:10:08 4349
原创 SpringBoot项目配置多数据源
原文地址:https://itweknow.cn/detail?id=76 ,欢迎大家访问。在实际的项目开发过程中我们会经常遇到一个项目操作多个数据库的问题,也就是多数据源的问题。那么本篇文章将通过一个具体的例子来讲解如何在SpringBoot+Mybatis+Druid+MySQL项目中实现多数据源的配置。准备一个springboot项目,可以去官网快速生成一个,如果你不是很清楚怎么...
2019-02-20 21:37:39 321
原创 MapReduce中使用Avro
原文地址:https://itweknow.cn/detail?id=71 ,欢迎大家访问。上篇文章我们简要介绍了一下Avro是啥,以及其几种数据类型。那么通过这篇文章我们一起来实践一下Avro在MapReduce中的使用。前提条件一个maven项目Hadoop集群,如果你还没有安装的话,请戳这里,查看之前的文章。说明本篇文章是一个简单的用例,使用的例子是一个txt文件中存储了...
2019-01-09 22:16:47 354
原创 Hadoop之Avro介绍
原文地址: https://itweknow.cn/detail?id=70 ,欢迎大家访问。什么是AvroAvro是一个独立于编程语言的数据序列化系统。这个项目由Ddoug Cutting(Hadoop之父)创建,目标是解决Hadoop中Writable类型缺乏语言的可移植性的不足。Avro模式通常采用JSON来写,数据则采用二进制格式编码,也可采用基于JSON的数据编码方式。Avro...
2019-01-09 22:15:54 1068
原创 《Effective Java》第6条:消除过期的对象引用
原文地址: https://itweknow.cn/detail?id=68 ,欢迎大家访问。说到Java,大概很多人都知道GC。Java有自动的垃圾回收机制,当然了,在这篇文章里面就不去深究GC的具体实现了。那么以后了垃圾自动回收,我们是不是就在也不用担心内存泄露的问题了呢。这种问题的答案一般来讲都是否定的。那么这篇文章我们就一起来跟着《Effective Java》来了解一下这个问题。...
2019-01-01 21:20:21 297
原创 Ubuntu上安装Hadoop集群
原文地址: https://itweknow.cn/detail?id=67 ,欢迎大家访问。前面我们介绍了在Ubuntu上安装Hadoop单机版。但是我们知道,Hadoop在实际工作中都是以集群的形式存在的,毕竟需要处理大量的数据,单机的处理速度显然不能满足。所以这篇文章我们就来介绍一下如何在Ubuntu上搭建Hadoop集群。准备阶段三台在同一局域网内的Linux机器或者虚拟机...
2019-01-01 21:19:33 1069
原创 SSH免密登录(内含批量配置脚本)
原文地址:https://itweknow.cn/detail?id=66 ,欢迎大家访问。在我们的集群环境搭建过程中可能会很需要SSH免密登录,互相之间传文件只需要一个SCP命令,连密码都不用输,很方便。那么这篇文章我们就来了解一下怎么配置免密登录。手动配置我这里所谓的手动配置是相对于脚本批量设置而言的。我们准备了两台Ubuntu虚拟机A和B。A中生成公私钥对,执行下面的命令,然后...
2019-01-01 21:18:23 2203 2
原创 Ubuntu使用阿里云软件仓库(内有批量更新软件仓库脚本)
原文地址:https://itweknow.cn/detail?id=65 ,欢迎大家访问。在国内使用ubuntu的过程中由于网络的问题可能会有些包下载速度很慢,但是阿里云为我们提供了仓库服务,我们可以将Ubuntu的默认的软件源修改为阿里云的就可以了明显的提高软件的下载速度了。单机修改我们先来看下修改一台机器的源。一台机器操作比较简单,也用不着使用脚本去操作。备份原来的源文件(P...
2019-01-01 21:17:36 2313
原创 《Effective Java》第5条:避免创建不必要的对象
原文地址: https://itweknow.cn/detail?id=60 ,欢迎大家访问。当一个对象能够被重用的时候,就不要去创建新对象。我们先来考虑一个比较简单的例子String s = new String("stringette");这个语句在每次被调用的时候都会创建一个全新的String实例,而且参数stringette自身也是一个String实例。所以一般建议使用下面的方...
2018-12-23 22:14:49 145
原创 微服务之间的协作方式
原文地址: https://itweknow.cn/detail?id=57 , 欢迎大家访问。前面几篇文章大概写了什么是微服务以及我们应该如何去划分微服务,那么本篇文章我们就来看下如果集成微服务,其实就是微服务之间如何沟通并且进行数据交换。集成的几点原则保证API的技术无关性为什么要保证这一点呢,之前在《了解什么是微服务》一文中提到过微服务有一个优点我们称为技术异构性。也就是我们可...
2018-12-20 22:33:39 365
原创 SpringBoot集成Swagger2生成接口文档
原文地址: https://itweknow.cn/detail?id=56 ,欢迎大家访问。我们提供Restful接口的时候,API文档是尤为的重要,它承载着对接口的定义,描述等。它还是和API消费方沟通的重要工具。在实际情况中由于接口和文档存放的位置不同,我们很难及时的去维护文档。个人在实际的工作中就遇到过很多接口更新了很久,但是文档却还是老版本的情况,其实在这个时候这份文档就已经失去了...
2018-12-19 22:44:44 184
原创 《Effective Java》第4条:通过私有构造器强化不可实例化的能力
原文地址: https://itweknow.cn/detail?id=53 ,欢迎大家访问。在实际的搬砖过程中,我们经常会写一些方便我们工作的工具类,一般来讲这类工具类是不希望被实例化的,因为实例对他们来讲没有任何的意义,毕竟它们不存储任何的数据。不提供构造器这应该是我们编写工具类的时候最常见的了,因为不需要实例化,所以我们一般都懒得去编写构造方法,但是我们忽略了编译器会为其提供一个默...
2018-12-16 22:46:23 131
原创 如何划分微服务
原文地址: https://itweknow.cn/detail?id=51 ,欢迎大家访问。我们已经大概知道了微服务是什么东西了,如果你还不知道的话,可以点这里。这篇文章就主要了解一下怎么去划分微服务,确定服务边界。首先这里先介绍几个概念。松耦合就是服务与服务之间的影响要尽量减少,想象一下如果如果服务之间做到了松耦合,那么就意味着修改一个服务就不需要修改另一个服务。这一点对与实现微服...
2018-12-08 11:37:46 4838
原创 架构师的工作
原文地址: https://itweknow.cn/detail?id=50 , 欢迎大家访问。架构师是个什么样的岗位?我们其实可以将架构师看成一个城市规划师的角色。作为一个城市规划师我们需要将城市分片,分成工业区,生活区等等,并且还需要为未来的变化预留空间。那么对于架构师而言也是这样,架构师需要规划我们的系统,将微服务分片,需要预测未来的变化,设计的架构需要灵活可变的。那么我们应该如何开始...
2018-12-06 08:12:32 247
原创 《Effective Java》第3条:用私有构造器或者枚举类型强化Singleton属性
原文地址: https://itweknow.cn/detail?id=49 , 欢迎大家访问。实现单例模式的几种方法书中一共提到了三种创建单例模式的方法:静态成员变量静态工厂方法单元素枚举其中前面两种也是我们经常使用的,书中也分析了这几种方式各自的优劣,下面我们就分别来看一下:静态成员变量public class Elvis01 { public static ...
2018-11-29 08:37:26 160
原创 了解什么是微服务
原文地址: https://itweknow.cn/detail?id=47 , 欢迎大家访问。什么是微服务先来说一下概念,微服务就是一群协同工作且小而自治的服务。在微服务中存在下面这些特征:1.内聚性什么是内聚性呢,就是将因相同原因而改变的东西聚在一起,因不同原因而改变的东西分离开来,这么一种隔离形态。2.小微服务这个名词听起来就有小的特点,那么小到什么程度才能叫做小呢,其实这个...
2018-11-24 17:46:53 172
原创 《Effective Java》第2条:遇到多个构造器参数时要考虑用构建器
原文地址: https://itweknow.cn/detail?id=47 , 欢迎大家访问。我们构建一个对象的几种方式构造器静态工厂方法构建器在书中提到了当我们遇到了大量的可选参数时,获取对象实例的几种方式(重叠构造方法,无参构造器配合JavaBean的setter方法,构建器),书中也分别列出了使用这几种方式的优劣之处。重叠构造器我们这里也以一个实际的例子入手,我们当前...
2018-11-23 07:34:38 314
原创 在Docker中运行SpringBoot程序
原文地址: https://itweknow.cn/detail?id=46 , 欢迎大家访问。微服务现在在互联网公司可谓非常流行了,之前找工作的的时候很多HR电话约面试的时候都会问对微服务是否有过接触。而微服务和Docker可以非常完美的结合,更加方便的实现微服务架构的落地。作为微服务中的代表SpringBoot框架,今天我们就来了解一下如何在Docker容器中运行一个SpringBoot...
2018-11-20 22:41:15 693
原创 《Effective Java》第1条:考虑静态工厂方法代替构造器
文章原地址:https://itweknow.cn/#/detail/index?id=44,欢迎大家访问。书中从优缺两个方面来阐述了静态工厂方法,也提到了静态工厂方法的应用场景,比如服务提供者框架,我也去看了一下JDBC的源码来帮助我理解服务提供者框架的概念,在这里也通过这篇文章分享给大家。四大优势优势一,对与构造方法而言,静态工场方法有名字当一个类的构造方法种类繁多而且参数复杂的话...
2018-11-15 22:22:43 175
原创 SSH公钥秘钥登录
一、生成公钥和密钥1、我这边使用的是XShell来生成公钥和密钥,如下图,选择“工具”-“新建用户密钥生成向导”,可以选择密钥的类型(我选择的是RSA)和密钥的长度。 2、处于安全考虑,我们一般会给密钥设置一个加密的密码,在使用该密钥文件的时候会要求输入密码。 3、下面会产生公钥,建议将其保存为文件。 4、点击“完成”,即可完成公钥和密钥的创建,最后可将密钥导出。二、服务器端的配置1、执行
2017-11-27 19:02:40 673
原创 docker构建Java Web + Mysql运行环境
一、拉取ubuntu和mysql基础镜像1、获取mysql镜像docker pull mysql:latest2、获取ubuntu镜像docker pull ubuntu2、查看镜像是否被拉取到root@gancy:/# docker imagesREPOSITORY TAG IMAGE ID CREATED
2017-03-03 09:35:53 1528
原创 Ubuntu上安装Docker
一、基础准备1、查看内核uname -aLinux VM-71-179-ubuntu 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux这里看到的内核是4.4.0-53,满足要求。2、docker对内核的要求: * 必须是 64 位操作系统 * 建议内核在 3.8
2017-02-27 13:11:46 340
原创 初次使用Nutz.Mvc
一、创建项目新建一个maven工程二、集成Nutz框架1、在pom.xm中添加如下内容 <dependencies> <dependency> <groupId>org.nutz</groupId> <artifactId>nutz</artifactId> <version>1.r.59</version> </dependency
2016-12-08 18:26:01 3349
原创 Android利用Jpush实现异地登陆下线
一、说明客户端程序中使用了xUtils框架(进行UI,资源的绑定,以及访问网络)JPush客户端集成可参照:http://docs.jiguang.cn/jpush/client/Android/android_guide/JPush服务器端集成参照:http://docs.jiguang.cn/jpush/server/3rd/java_sdk/xUtils下载及使用:https://gi
2016-10-09 19:22:23 2712
原创 Android打造万能适配器--RecyclerView
一、通常RecyclerView的Adapter写法在使用RecyclerView之前我们还需要导入依赖库,在build.gradle中的dependencies下添加:compile 'com.android.support:recyclerview-v7:24.2.1'通常情况下的RecyclerView的Adapter:package com.gcy.universal_adapter_rec
2016-09-28 17:42:34 1347
原创 Android打造ListView和GridView万能适配器
本篇博客是我学习过慕课网的《Android-打造万能适配器》课程后的学习笔记一、传统方式分析 传统写法下,我们几乎每个ListView都会单独写一个Adapter和一个ViewHolder,分析代码可以发现,传统的Adapter里有很多的重复性代码,比如说getCount()、getItem(int position)、getItemId(int position),传统Adapter写法如下:p
2016-09-28 10:21:13 913
原创 Toolbar+NavigationView实现抽屉式菜单
一、Menu部分在res文件上右键->new->Android resource directory,新建Menu文件夹toolbar_menu.xml,在本例中toolbar仅包含一个扫一扫的菜单<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android
2016-09-21 18:12:36 2785
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人