2017 年度总结 - 写在跨年前夜 有更新!

博客 2017年我的个人博客风林火山一共更新了14篇文章。 工作 今年4月份,离开同方,来到了国资商城 搭建了团队内使用的Jenkins/Nexus私库及后续的维护管理 五个项目的设计和关键业务实现 团队项目的gitlab版本管理及上线工作 尝试了一下codereview 今年10月后,公司经历了两次裁员,不是很理解公司的一些做法(可能位置不同),也很替公司和离开的同事惋惜,毕竟他们在以前的公司都是独当一面的员工,算是双输吧。一位主动离开同事的话我还记得:“苟富贵,莫相忘”。 父母&娃 父母今年身体不太好,痛风、感冒交替着来。 娃最近吃饭不消化,上吐下泻的,看着心疼。自从有了娃,才明白一个人从婴儿长到成人的过程是多么的不易,也明白了父母抚养我们长大有多么不易。 而立 三十来了,四十还远吗?不知不惑之年又会是怎样的人生。 动画 在看《一人之下》,《超神学院》 开源git:flhuoshan(https://github.com/flhuoshan) 做了两个SpringBoot脚手架,其中一个是模块化的,可以作为项目的initproject。 书单 今年….

阅读全文 »

一种 gitlab 版本管理策略

背景 目前负责小组内源码的版本管理,将目前的我们的源码管理策略做一番梳理和分享,以期共同进步。 流程 先建立主分支master Owner基于master建立开发分支xxx-dev-v1,xxx-release-v1,分别是第一期开发版本,第一期发布版本。 xxx-dev-v1供开发人员拉取并开发,功能点开发完成且单元测试通过后,将开发代码提交到xxx-dev-v1上。 测试人员测试xxx-dev-v1的代码,测试通过后,由本人将xxx-dev-v1的代码合并到xxx-release-v1,待发布。发布前若测试人员发现bug,则重复3、4步。 发布时,由Owner将xxx-release-v1合并到master分支,合并后master分支打tag,如master> git tag 20171220-v1.0,然后运行自动发布脚本进行发布。 项目是迭代开发,第一期完成后该进行第二期开发,命名方式相同,依次类推。 如果在开发V2的过程中,需要紧急修复V1(线上)中的漏洞,则重复3、4、5步,并在最后将master的代码合并到V2上,以保证V2的代码最新;如评估后不紧急,可放在….

阅读全文 »

使用 shell 脚本打包部署 springboot 项目

背景:目前我们的非正式环境(包括TEST,PRE)都使用jenkins进行发布,但正式环境还是手动打包发布。因此为了节省发布的时间,写了一套shell脚本进行一键发布。计划后期(如果还有后期的话)将项目迁移到docker进行发布管理。 code: #!/bin/bash #author cl* CODE_DIR=“codedir” PACKAGED_NAME=“packagename” GIT_PROJECT_NAME=“projectname” GIT_BRANCH_NAME=“branchname” APP_DEPLOY_PATH=“deploypath” PROFILE=“prd” PORT=9096 #如果任何语句的执行结果不是true则应该退出 set -e #git初始化配置,配置后,无需手动输入用户名及密码即可从指定git管理代码 function gitinit(){ echo “start gitinit…” cd ~/ touch .git-credentials echo “http://username:password@xxx.xxx.xxx.xxx” &….

阅读全文 »

常用 IDEA 快捷键

1、文本编辑 - 删除 ctrl + y - 复制 ctrl + d - 光标跳到类头 ctrl + home - 光标跳到类尾 ctrl + end - 光标快速移动 ctrl + <-/-> - 光标快速选中 ctrl + shift + <-/-> - 光标在类内方法头部快速移动 alt + 上下箭头 - 光标所在位置每次选中一行 shift + 上下箭头 - 内容在方法体内上下移动 ctrl + shift + 上下箭头 - 内容在类内上下移动 alt + shift + 上下箭头 2、智能提示 - 提示 ctrl + space - 智能提示 ctrl + shift + space - 完成当前语句 ctrl + shift + enter - 建议提示为参数 ctrl + alt + p - 对代码重新排列格式 ctrl + alt + l - 对imports进行优化 ctrl + alt + o 3、位置定位 - 定位到下一个或上一个错误 f2/Shift + f2 - 定位文件行 ctrl + g - 定位到代码块开始 ctrl + [ ….

阅读全文 »

OWASP TOP10 网络安全威胁整理 有更新!

缘起 上月底到合肥参加了owasp top10网络安全宣讲。回来后结合在开发中遇到的问题整理并在部门内部做了一次分享,以下是分享内容。 01注入 描述 注入漏洞发生在应用程序将不可信的数据发送到解释器。需要考虑任何向系统发送不信任数据的人。 场景 String query = “SELECT * FROM user WHERE user_id =‘“ + request.getParameter(”id“) + ”’”; 在该案例中,构造Web请求时,将参数id设为“’ or ‘1’ = ’1”,将得到下面的语句,绕过user_id的条件判断得到所有用户信息。 SELECT * FROM user WHERE user_id = ’’ or ‘1’ = ‘1’ 避免SQL注入,一般使用PreparedStatement进行数据库操作,将SQL语句进行预编译,经过预编译后,传入的参数将被识别为带一对引号的字符串而不是带有sql关键字的语句。 怎么做 工作中使用到的Mybatis提供两种传参数写法: select * from user where name ….

阅读全文 »

瞎扯淡:Jenkins 搭建要点

前言 Jenkins作为持续集成工具,大大的解放了ITER的双手,将大量重复性的,繁琐的更新、构建、部署操作融于一体。之前用了一些时间为项目组搭建了一套Jenkins环境,将搭建的步骤做一次梳理,分享出来。 概述 总的来说,Jenkins是一个协调者的身份,管理和协调了代码库,代码仓库,代码运行环境等。Jenkins和其他部分的依赖关系如图: 步骤 有了上述的关系图,我们就可以开始着手搭建CI环境了。 JDK,NEXUS,MAVEN此三者是Jenkins直接依赖的环境,因此需要先行安装配置。 下载安装JDK,配置环境变量。java -version命令查看是否安装成功。 下载安装MAVEN,配置环境变量。 安装私有的NEXUS,见此处。 关联MAVEN与NEXUS,将MAVEN的远程仓库修改为私有NEXUS(在MAVEN的settings.xml文件中设置)。不建议使用MAVEN中央仓库,因为部分jar包被墙且下载速度慢,同时无法发布自己的私有Jar包(审核时间长且不适合放在公网),造成构建发布失败。 Jenkins 安装过程略 启停命令 :service jenki….

阅读全文 »

RESTFul 风格 API 设计 有更新!

修订记录 日期 修订版本 修订章节 修改描述 作者 20170623 V1.0 全文 新增 某某 注意事项 类型是属性类型,只有String、Number、Object、Array 编码格式默认为utf-8 接口说明 1. 商品新增[单个]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 name 商品名 String … 是 price 价格 Number … 是 id 商品编号 String … 是 返回参数: 字段 说明 类型 备注 是否必填 code 返回码 Number 是 message 返回码说明 Number 是 2. 商品新增[批量]- 请求地址: post /api/{version}/products- 请求参数: 字段 说明 类型 备注 是否必填 datas 商品数据数组 Array … 是 其中,datas中的一个data: 字段 说明 类型 备注 是否必填 ….

阅读全文 »

简明 SONATYPE NEXUS 私有库搭建配置说明

缘由 持续集成jenkins框架需要配合 私库上传自有包 避免中央仓库网络条件不行包下载失败,且外网中断时也可以正常运行 节约公司网络带宽 加速包下载 步骤 先安装jdk8,配置环境变量 下载程序包 nexus-3.3.1-01-unix.tar.gz【nexus oss版本】 上传到/usr/local目录,解压,进入到bin目录执行启动脚本,这里的&意思是作为后台进程运行 tar -cxvf nexus-3.3.1-01-unix.tar.gz mv nexus-3.3.1-01-unix.tar.gz nexus331 cd nexus331/bin ./nexus run & 执行后,会打印很多启动信息。启动完成后访问:服务器地址:8081,nexus的默认端口是8081,有两个默认用户admin(密码admin123)、anonymous(匿名用户,只能查看)。 关闭nexus ./nexus stop[关闭nexus] 登录,大概是这样: 本地设置 安装好以后,需要与本地做关联。那么,这个关联要怎样体现呢?一是本地maven的setti….

阅读全文 »

这次不再是毒鸡汤 有更新!

世界上最有力量的四件事:准时、守信、认真、持之以恒。 #### 准时到就是:提前到! #### 给予别人的要能超过他的原始期望;否则不仅白费自己的时间和精力,还会严重影响你做下一件正事。 #### 新年的意义就在于:可以不再沿用去年失败的旧活法。

阅读全文 »