MENU

Keep It Stupid Simple

判断字符串是否为指定日期格式

在做单表动态增删改查功能时产生了这样一个需求,判断传入的字符串是否符合指定数据库插入的格式要求;很简单的一个问题,但是没找到直接可用的判断方法。首先想到的是用SimpleDateFormat来parse字符串,如果抛出异常则为不符合,反之则符合,代码如下:

private static boolean isValidFormat(String format, String value) {
    boolean ok = true;
    DateFormat df = new SimpleDateFormat(format);
    try {
        df.parse(value);
    } catch (ParseException e) {
        ok = false;
    }
    return ok;
}

使用yyyy-MM-dd HH:mm:ss格式和2019-02-31 13:12:20进行测试,

@Test
public void test_1() {
    String format = "yyyy-MM-dd HH:mm:ss";
    String value = "2019-02-31 13:12:20";
    Assert.assertFalse(isValidFormat(format, value));
}

Read More

Vultr 端口问题排查

在Vultr服务器上安装的某软件突然出现连接问题,开始以为是IP被封了;发现ping xx.xx.xx.xx(替换真实IP)是通的,ssh登陆也没有问题;怀疑是vultr修改了服务器防火墙配置,执行

Read More

包含数字大小写字母特殊字符且不少于8位的正则

验证方法:

/**
 * 密码长度8到16位
 * 包含数字
 * 包含大写字母
 * 包含小写字母
 * 包含特殊字符
 */
public static boolean validatePassword(String password) {
    if (StringUtils.isBlank(password)) {
        return false;
    }
    Pattern pattern = Pattern.compile("(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\\w\\s]).{8,16}");
    Matcher matcher = pattern.matcher(password);
    return matcher.matches();
}

Read More

Spring Cloud(一) 微服务与 Spring Cloud

微服务通过分解大型单体式应用为多个服务来解决复杂性问题;在业务功能不变的情况下,应用被分解为多个可管理的服务,每个服务都有一个用RPC或者消息驱动API定义的边界;微服务架构模式给采用单体编码方式很难实现的功能提供了模块化的解决方案,由此,单个服务更易开发、理解和维护。微服务架构使得每个服务都可以有专门开发团队来开发,开发者可以自由选择开发技术,提供API服务;因为微服务应用都相对简单,进行代码重构、重写也更简单。微服务架构每个服务独立部署,开发者再需要协调其它服务部署对本服务的影响,更易部署。对于每个微服务,可以更定制化的配置硬件资源,更合理地利用资源。

Read More