<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dora_310的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dora_310</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dora_310]]></copyright><item><title><![CDATA[Spring 提供的参数效验注解]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/115128090</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/115128090</guid><author>dora_310</author><pubDate>Tue, 23 Mar 2021 16:05:01 +0800</pubDate><description><![CDATA[Spring 提供的效验规则

JSR303 api文档 13
JSR380 api文档 9
Hibernate Validator

Bean Validation 中内置的 constraint




Constraint
用法
适用类型
约束来源




@Null
被注解的字段必须为空

JSR303


@NotNull
被注解的字段必须不为空

JSR303


@NotBlank
带注释的元素不能为null，并且必须至少包含一个非空白字符

JSR380


@NotEmpty
带注释的元素]]></description><category></category></item><item><title><![CDATA[springboot多环境只打包指定环境的配置文件]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/85237754</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/85237754</guid><author>dora_310</author><pubDate>Mon, 24 Dec 2018 19:11:06 +0800</pubDate><description><![CDATA[在 SpringBoot 工程里面可以通过 application-*.yml 的方式实现多环境打包。但是打包的时候会把所有的.yml配置文件都打到包里。
通过下面的方式可以实现在打包的时候只打上当前环境的配置文件
pom.xml

 &amp;lt;profiles&amp;gt;
    &amp;lt;profile&amp;gt;
        &amp;lt;!-- 本地开发环境 --&amp;gt;
        &amp;lt;id&amp;...]]></description><category></category></item><item><title><![CDATA[SpringBoot获得Maven-pom中版本号和编译时间戳]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/85038475</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/85038475</guid><author>dora_310</author><pubDate>Sun, 16 Dec 2018 16:56:55 +0800</pubDate><description><![CDATA[这篇文章介绍了在SpringBoot中如何获得项目的编译时间和版本号，主要分为以下步骤

在pom文件中获取maven的build time
配置pom，用maven中的变量替换资源文件中的属性
提供接口

Maven中获得编译时间
在 pom文件properties 中添加两个属性
&amp;amp;amp;amp;amp;amp;lt;properties&amp;amp;amp;amp;amp;amp;gt;
    &amp;amp;amp;amp;amp;amp;lt;!--maven.build]]></description><category></category></item><item><title><![CDATA[一行命令在Linux和Window间跨平台共享文件夹]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/82856026</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/82856026</guid><author>dora_310</author><pubDate>Wed, 26 Sep 2018 17:02:21 +0800</pubDate><description><![CDATA[Python内置了一个简单的HTTP服务器SimpleHTTPServer,通过它可以把指定文件夹在局域网共享,不受操作系统的限制,通过浏览器就可以浏览、下载我们所共享的文件

Python2
//查看python版本
python --version

//端口port是可选的，不填会采用缺省端口8000
python -m SimpleHTTPServer [port]

一行命令HTTP服务...]]></description><category></category></item><item><title><![CDATA[在Ubuntu用Docker部署汉化版GitLab]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/82425251</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/82425251</guid><author>dora_310</author><pubDate>Wed, 05 Sep 2018 15:51:28 +0800</pubDate><description><![CDATA[项目的开发通常都离不开对代码的版本管理。简单的方式可以在内网搭建一个仓库，然后添加各个组员的公钥来共同开发。这种方式不仅不利于管理和维护，而且功能过于单一。我们很希望有像GitHub这样的平台服务，功能齐全且好维护。但由于GFW的原因，有时候访问延迟过大。更重要的是，github免费版只支持开源项目，私有项目需要付费，而且比较昂贵，并不适合公司的项目。

GitLab 是一个类似与GitHub的项...]]></description><category></category></item><item><title><![CDATA[React+antd：为表格添加成组标记]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/82224040</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/82224040</guid><author>dora_310</author><pubDate>Thu, 30 Aug 2018 16:44:58 +0800</pubDate><description><![CDATA[最近在做前端开发的时候遇到一个需求：对后端传回的数据中满足条件的相邻行用符号连接起来，表示关联关系。我是个前端新人，因项目需要接手前端开发工作，为了实现这个需求颇费了一番功夫。现在记录下来方便后来者。

这篇文章首先用原生CSS实现了这个需求，然后在React工程中的antd表格组件中实际应用。





用CSS实现表格的成组标记

本蚊以在相同国家的人名前加上成组标记为例

CodoPen在线...]]></description><category></category></item><item><title><![CDATA[Ant Design之表格动态合并行]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/81125126</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/81125126</guid><author>dora_310</author><pubDate>Fri, 20 Jul 2018 00:49:28 +0800</pubDate><description><![CDATA[在web开发中，表格的行合并是一个很常见的需求。蚂蚁框架也提供了这种功能，但是文档中的示例代码却和我想象中的相差甚远，如下所示，它是通过一种很笨的办法实现的行合并。这样当表格的数据源是动态获取的，我们就没有办法动态的合并行。 




官方代码


  蚂蚁框架的官方文档代码，我的代码见最后





import { Table } from 'antd';

// In the fifth r...]]></description><category></category></item><item><title><![CDATA[Spring Boot2整合Shiro（2）：用 BCrypt 加密密码]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/81107107</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/81107107</guid><author>dora_310</author><pubDate>Wed, 18 Jul 2018 23:22:59 +0800</pubDate><description><![CDATA[上一篇文章，我们用spring boot2框架搭建了一个web项目，并且使用shiro作为安全管理框架实现了用户的身份认证，也就是登录。这篇文章首先简要介绍了密码储存的演进史，然后结合代码介绍了在shiro中怎么使用MD5、MD5加盐、Bcrypt等三种逐渐进步的方法加密密码。]]></description><category></category></item><item><title><![CDATA[使用Kettle实现数据实时增量同步]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/80511793</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/80511793</guid><author>dora_310</author><pubDate>Wed, 30 May 2018 16:16:20 +0800</pubDate><description><![CDATA[0. 前言

本文介绍了使用Kettle对一张业务表数据（500万条数据以上）进行实时（10秒）同步，采用了时间戳增量回滚同步的方法。关于ETL和Kettle的入门知识大家可以阅读相关的blog和文档学习。 




1. 时间戳增量回滚同步

假定在源数据表中有一个字段会记录数据的新增或修改时间，可以通过它对数据在时间维度上进行排序。通过中间表记录每次更新的时间戳，在下一个同步周期时，通过这个时...]]></description><category></category></item><item><title><![CDATA[Spring Boot2整合Shiro（1）：身份认证]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/79769779</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/79769779</guid><author>dora_310</author><pubDate>Sat, 31 Mar 2018 15:31:36 +0800</pubDate><description><![CDATA[前言本文主要介绍了在Spring Boot2项目中整合Shiro实现登录认证。本文假设读者已经对Shiro和基于RBAC的权限控制系统有了基本的认识。 
本项目没有数据库，也就没有dao层，所有的用户和密码均在Service层采用硬编码。
  特别提醒：因为代码块中的@符号在博客发布过程中会导致代码格式混乱，所以@都是用双斜杠注释了。
创建工程通过idea的Spring Initializr新建工程]]></description><category></category></item><item><title><![CDATA[MySQL Workbench中PK,NN,UQ,BIN,UN,ZF,AI,G字段类型标识说明]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/79737949</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/79737949</guid><author>dora_310</author><pubDate>Thu, 29 Mar 2018 09:48:20 +0800</pubDate><description><![CDATA[PK：primary key 主键
NN：not null 非空
UQ：unique 唯一索引
BIN：binary 二进制数据(比text更大)
UN：unsigned 无符号（非负数）
ZF：zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001 
AI：auto increment 自增
G: Generated Column mysql5.7新特新：这一列由其他列]]></description><category></category></item><item><title><![CDATA[fastjson JavaBean 转 Map]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/79296918</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/79296918</guid><author>dora_310</author><pubDate>Fri, 09 Feb 2018 11:41:42 +0800</pubDate><description><![CDATA[常用函数



//将JavaBean序列化为JSON文本(常用)  
public static final String toJSONString(Object object);  

//把JSON文本parse为JSONObject(常用)  JSONObject实现了Map&amp;lt;String, Object&amp;gt;接口
public static final T parseObject...]]></description><category></category></item><item><title><![CDATA[日志框架logback学习记录]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/74891931</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/74891931</guid><author>dora_310</author><pubDate>Sun, 09 Jul 2017 16:08:40 +0800</pubDate><description><![CDATA[logback是什么LogBack是一个日志框架，它是Log4j作者Ceki的又一个日志组件。LogBack是Log4j的改良版本，比Log4j拥有更多的特性，同时也带来很大性能提升。logback 的结构LogBack分为3个模块:
logback-core
  logback-core提供了LogBack的核心功能，是另外两个组件的基础logback-classic
  logback-clas]]></description><category></category></item><item><title><![CDATA[SSM(一) | 框架整合]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/74780157</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/74780157</guid><author>dora_310</author><pubDate>Fri, 07 Jul 2017 22:01:51 +0800</pubDate><description><![CDATA[从零开始一步步的搭建一个ssm框架(Spring+Spring MVC +Mybatis + Maven +IDEA)]]></description><category></category></item><item><title><![CDATA[锋利的jQuery | jQuery中的DOM操作]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/71598440</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/71598440</guid><author>dora_310</author><pubDate>Wed, 10 May 2017 22:45:08 +0800</pubDate><description><![CDATA[本文整理自锋利的jQuery(第二版)第三章
查找节点
var $li = $("ul li:eq(1)"); //获得元素节点
var li_text = $li.text();   //获得文本内容
var name = $li.attr("name") //查找属性节点
var class = $li.attr("class")   //查找属性节点
创建节点
var li_2 = $("<l]]></description><category></category></item><item><title><![CDATA[锋利的jQuery | jQuery选择器一览]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/71597594</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/71597594</guid><author>dora_310</author><pubDate>Wed, 10 May 2017 21:17:52 +0800</pubDate><description><![CDATA[本文整理自锋利的jQuery(第二版),难免有些过时,读者可以在jQuery API 1.12 中文文档查看更全面的内容
基本选择器$("#id")  //id选择器
$(".class") //类选择器
$("label")  //元素选择器
$("*")  //通配符
$(".class,#id") //并列选择器层次选择器
$("body div")  //后代选择器
$("body > di]]></description><category></category></item><item><title><![CDATA[BAT | 批处理下载ftp文件]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/71480026</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/71480026</guid><author>dora_310</author><pubDate>Tue, 09 May 2017 16:05:50 +0800</pubDate><description><![CDATA[@echo offrem 指定FTP用户名
set ftpUser=***
rem 指定FTP密码
set ftpPass=***
rem 指定FTP服务器地址
set ftpIp=ftp.******.com
rem 指定待下载的文件位于FTP服务器的哪个目录
set ftpFolder=/pub/demo/install
rem 指定从FTP下载下来的文件存放到本机哪个目录
set LocalF]]></description><category></category></item><item><title><![CDATA[下拉列表、单选按钮、复选框常用用法总结]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/54318332</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/54318332</guid><author>dora_310</author><pubDate>Tue, 10 Jan 2017 22:01:45 +0800</pubDate><description><![CDATA[下拉列表html<select id="demoselect">
    <option value="eq">相等</option>
    <option value="gt">大于</option>
    <option value="lt">小于</option>
</select>获取下拉列表的值$("#demoselect").val()//value$("#demoselect").]]></description><category></category></item><item><title><![CDATA[sql数据库定期备份并上传ftp脚本]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/54098923</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/54098923</guid><author>dora_310</author><pubDate>Thu, 05 Jan 2017 22:21:33 +0800</pubDate><description><![CDATA[定时同步sql数据库并上传ftp.]]></description><category></category></item><item><title><![CDATA[MongoDB-3.2.0 授权登陆]]></title><link>https://blog.youkuaiyun.com/dora_310/article/details/53893242</link><guid>https://blog.youkuaiyun.com/dora_310/article/details/53893242</guid><author>dora_310</author><pubDate>Tue, 27 Dec 2016 10:07:12 +0800</pubDate><description><![CDATA[1. 简介mongodb开启授权登陆前，需要在数据库中创建一个拥有账号管理的授权权限的账号，也就是可以创建各类账号的账号。步骤如下1.1.  无验证启动mongodb1.2. 创建用户从3.0开始默认不创建admin库，需要自己创建1. use admin
2. db.createUser(
    { user:"admin",     //user:新用户的名字
    customData:{]]></description><category></category></item></channel></rss>