• java唯一字符串ID生成方案

    工作中经常会有生成唯一字符串的需求。通常最容易想到的是UUID。UUID的唯一性毋庸置疑,但是32位的长度也容易让人退避三舍。也曾经想过参考《短网址生成方案》来生成一串ID,但是试验了一下发现唯一性不太好。 最终采用的方案是时钟方案,简单来

    [阅读更多...]
  • Java 抽象工具类

    在SpringBoot的源码中有看到使用abstract关键字定义的工具类,如: 使用abstract关键字的目的猜测应该是为了避免实例化。 同样为了避免实例化,在jdk中定义的工具类则通常是使用私有化构造器来实现的: 目的都是为了避免实例

    [阅读更多...]
  • Java AES加密

    做360广告的对接需要对密码进行AES加密,下面是点睛平台文档的描述: (AES模式为CBC,加密算法MCRYPT_RIJNDAEL_128)对MD5加密后的密码实现对称加密。秘钥是apiSecret 的前16位,向量是后16位,加密结果为

    [阅读更多...]
  • springboot入门10 – 修改banner

    这个内容有点儿水了。但是将springboot启动时的banner修改一下是个蛮好玩的事情。比如,不知道什么时候,我们组的springboot应用的banner就被改成了这个样子: 据说改了之后BUG真的少了耶!(*/ω\*) 修改方式也比

    [阅读更多...]
  • springboot入门09 – 实现伪静态

    最近想了下springboot前端路径的伪静态实现。 通过百度最容易找到的方案是使用urlrewritefilter这个依赖。不过一想到要为这么一件事情就添加一个依赖,还要再添加一个配置文件,还要挨个写一遍所有的路径映射就觉得头疼,所以pa

    [阅读更多...]
  • SpringBoot探索04 – Java Headless Mode

    引入 在springboot的启动代码中看到了下面这一句: 先不谈这段代码的作用,只说这里的写法就有很多可以借鉴的地方: 定义了有意义的常量 在set之前先get以避免覆盖用户自定义配置 允许用户在程序中配置headless项,所以有了th

    [阅读更多...]
  • springboot学习01 – 自定义自动配置

    概述 SpringBoot提供了自动配置能力。通过自动配置我们可以非常方便地启动相关的服务。 SpringBoot自动配置有两个核心模块: 自动配置模块(autoconfigure):主要负责读取配置相关的内容,并尝试启动服务; 启动模块(

    [阅读更多...]
  • SpringBoot探索03 – 条件注解

    SpringBoot中提供了一系列的条件注解(@Conditional)来实现对@Bean和@Configuration等实例的创建进行约束。这些注解包括: Class Conditions,类条件约束 Bean Conditions,Be

    [阅读更多...]
  • SpringBoot探索02 – 启动过程之getSpringFactoriesInstances

    最近计划整理下SpringBoot的启动过程以及API请求返回过程,以便支持后续的部分内容,也方便实现一周一文的计划。 先做SpringBoot启动流程分析。 初见 在SpringBoot启动代码的开头部分可以看到如下的内容: 比较显眼的是

    [阅读更多...]
  • springboot入门08 – 创建非web项目

    概述 从开始使用SpringBoot到现在,一直都是在用SpringBoot开发web服务(API服务)。直到前段时间,需要帮其他组的同事写一个非web的简单服务时,才想到Springboot是不是也支持非web项目。 答案是肯定的:spr

    [阅读更多...]