0%

OAuth

OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。这个标准比较抽象,使用了很多
术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助大家轻松理解,
OAuth 2.0 到底是什么。

阅读全文 »

创建和销毁对象

本章涉及创建和销毁对象:何时以及如何创建对象,何时以及如何避免创建对象,如何确保它们被及时销毁,
以及如何管理在销毁之前必须执行的清理操作。

阅读全文 »

网络通信原理

TCP/IP五层模型详解

计算机与计算机之间要有统一的连接标准才能够完成相互通信,这个标准被称为互联网协议,而网络就是物理
链接介质+互联网协议。按照功能不同,人们将互联网协议从不同维度分为TCP/IP四层,TCP/IP五层和OSI七
层,如下图所示。

阅读全文 »

Jackson 是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。Jackson 社 区相对比较活跃,更新速度也比较快,从 Github 中的统计来看,Jackson 是最流行的 json 解析器之一 。
Spring MVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖的 jar 包较少 ,简单易用。与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比较快;Jackson 运行时占用内存比较低,性能比较好;Jackson 有灵活的 API,可以很容易进行扩展和定制。
Jackson 的 1.x 版本的包名是 org.codehaus.jackson ,当升级到 2.x 版本时,包名变为 com.fasterxml.jackson,本文讨论的内容是基于最新的 Jackson 的 2.9.1 版本。
如果使用的是spring-boot项目,则spring-boot-starter-web默认会引入Jackson包。不必在pom中再次引入依赖。

阅读全文 »

环境搭建

jdk

可以选择卸载系统自带的OpenJDK以及相关的java文件,不卸载也没关系,直接修改/etc/profile即可。
检查是否安装了jdk:
java -version
可能已经安装openJDK,这里需要先卸载掉:
rpm -qa | grep java
命令说明:
rpm:管理套件
-qa:使用询问模式,查询所有套件
grep:查找文件里符合条件的字符串
java:查找包含java字符串的文件

把在检查出的列表中前缀带java的文件全部删除。
完整的删除文件的命令,在命令窗口键入:
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
命令介绍:
rpm:管理套件
-e:删除指定的套件
–nodeps:不验证套件档的相互关联性

检查是否删除成功,再次输入:
java -version
command not found
代表删除成功,如果还没有删除,则用yum -y remove去删除他们。

阅读全文 »

基础

面向接口编程

  1. Mapper文件的namespace要和dao层接口的完整路径对应
    <mapper namespace="com.wjy.mapper.TestMapper">

  2. 接口中的方法名字要和Mapper文件中SQL语句的ID对应
    dao层接口
    xxxBean selectByPrimaryKey(Integer id);

    1
    2
    3
    4
    5
    6
    <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
    select
    <include refid="Base_Column_List" />
    from unit
    where id = #{id,jdbcType=INTEGER}
    </select>
阅读全文 »

什么是消息队列

消息队列(Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系
列的输入,通常来自用户。消息队列提供了异步的通信协议,每一个贮列中的记录包含详细说明的数据,包含
发生的时间,输入设备的种类,以及特定的输入参数。也就是说:消息的发送者和接收者不需要同时与消息队
列互交。消息会保存在队列中,直到接收者取回它。 ——维基百科

阅读全文 »

概述

Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会,遵从了Apache2.0协议,项目代码在GitHub上进行维护。
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker的基础是Linux容器(LXC)等技术。在LXC的基础上Docker进行了进一步封装,让用户不用去关心容器的管理,使得操作更为简便,用户操作docker容器就像操作一个轻量级虚拟机一样简单。
下面的图片比较了 Docker 和传统虚拟化方式的不同之处,可见docker是在操作系统上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

阅读全文 »