0%

前言

idea 当今java开发第一ide 应该没人反对
jb公司 对于开源有支持 大多数开发者都可以很轻松的申请到jb的正式版本

阅读全文 »

####docker-compose 是docker的一个工具 是用来根据配置联合启动多个docker的工具 特别是在启动一些复杂应用的时候 适合用docker-compose来启动 当然 也可以自己写shell脚本启动
####docker-compose配置文件 部分字段解释
#####实例 yaml格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3'
services:
mysql:
image: mysql
ports:
- '3306:3306'
networks:
- network1
redis:
image: redis
ports:
- '6379:6379'
networks:
- network1
nginx:
image: nginx
prots:
- '80:80'
networks:
- network1
networks:
network1:
driver: bridge
阅读全文 »

###gitflow 代码提交规范
如下图:
image.png

master:线上分支 这个分支 就是线上代码所在的分支 每个点就是软件的一个版本 打上tag
develop:当代码在开发分支上开发完毕经过基本测试 即可推送合并到develop上 这个是一个比较稳定的一个版本了 合并到develop分支上的功能 代表这个是必须上线的一个功能
feature:开发分支 这个可以开多个 多个项目组 并行开发 在合适的时机 合并到develop 或者 新的feature分支 进行功能合并
release:测试分支 develop上的代码 分开一个release分支进行测试 当测试阶段性完成 就合并到develop分支 当整个测试完成 就将测试完成的代码合并到develop 和master分支上
hotfixes:线上bug修复分支 主要处理 master 也就是线上的bug 开的临时分支 当bug处理完成 则将代码推送到develop和master分支

阅读全文 »

####由于有朋友不会这个远程部署又懒的百度、google 于是我写这个maven+tomcat远程部署javaweb项目的教程。以后心情好说不定会继续更新项目管理的一些环境搭建:如jenkins+gitlab+项目管理工具(如禅道)这样自动化部署测试环境
##工具和环境准备
1:工具 maven tomcat
2:环境maven能下jar即可、tomcat管理员账户和一些安全设置设定(8.5以上需要设定远程管理员访问的配置)
3:能访问远程tomcat管理页面
##maven远程部署配置
####1: maven工具配置
需要在maven的setting.xml中添加如下配置
settins.xml 一般在maven安装目录的conf文件夹下 不排除有人更改默认地址了

1
2
3
4
5
6
7
8
<servers>
<!--maven tomcat远程部署密码帐号密码设置-->
<server>
<id>名称 例如“laji” (任意取 pom.xml中需要使用)</id>
<username>tomcat管理员用户名</username>
<password>tomcat管理员密码</password>
</server>
</servers>
阅读全文 »

win10 安装vbox的时候蓝屏 经过google 发现是 Hyper-V 和 vbox 冲突 坑爹的微软
关闭Hyper-V
搜索 windows功能 找到Hyper-v 关闭 重启 即可

####yaml 在学习docker-compose工具中需要用到yaml来做配置
####yaml语法清晰简洁 适合写配置 但是不适合做数据传输
####在比较新的技术中 大量应用了yaml去配置 如spring cloud docker-compose等
######语法规则

  • 大小写敏感
  • 缩进表示层级关系
  • 缩进不允许tab 只允许空格
  • 空格数量不重要。相同层级左边对齐即可
  • #表示注释
阅读全文 »

#编码问题
##1:各种编码介绍
###1.1:ascll码

1
2
3
共128个,用一个字节的低七位表示,
0~31是控制字符换行、回车、删除相关的字符
32~126是输出字符,就是可以同过键盘输入并且输出的
阅读全文 »

####由于开放型的短信接口受到不明来源的恶意访问 大佬们紧急对整个项目的接口进行加密
原理:密钥+参数生成 md5 签名 客户端保存好密钥即可 之前对接苏宁易购的那个支付平台的时候 也是选择这种方式进行访问加密
1:生成密钥
这个随机定义 例如我选择使用 appId + salt 生成md5 截取前12位作为 指定app应用的密钥 如果发生泄漏 可以通过改变salt 来生成新的密钥
2:客户端密钥 存储
客户端 拿到密钥不能明文存储 例如 12位 可以拆分三段 然后分别进行偏移 这样如果别人要识别 必须反编译源码 并且读懂相关规则
3:签名规则
除开签名以外所有参数 按照排序规则排序 然后拼接上密钥 通过md5 或者类似的算法生成md5签名
4:服务端验证规则
除开签名 也按照客户端同样的排序规则排序 拼接密钥 通过相同的算法生成服务端签名 通过比较客户端签名 和服务端签名 来验证服务是否可靠、

生成签名 方法示例

阅读全文 »

##在将项目前后端分离的时候,首当其冲的就是跨域问题;此篇笔记 用来记录什么是跨域、如何解决跨域、以及一个实例;免得自己以后忘记了还需要去搜索
###什么是跨域
http为了提高安全,禁止非同域访问
什么是同域:满足下三条才是同域 1:同端口 ip,2:同样的协议,3:如果是子域名 也要一样 否则就是非同域 不能直接互相访问,必须通过一些安全设置或者技巧去访问如jsonp、cors等方案
###解决跨域
####1:jsonp 方式
首先jsonp和json是没有任何关系的 ;
由于浏览器对js、图片不会做跨域限制
jsonp就是相当于把数据下载下来解析,利用script标签去下载数据 然后解析
就是用javascript动态加载一个script文件,如何去解析这个文件 例如json字符串
######局限性:只能get请求 如果需要post、put等其他请求 无法满足

###2:cors跨域(重点)
cors是w3c定义的一种新的标准 用来适应跨域数据请求的
当浏览器发现是跨域请求 会自动在报头添加一些跨域信息 如option等
cors跨域分为简单请求和负责请求 但是只要在服务端设定合适 区别不是特别大
当满足如下条件就是简单的cors跨域请求 不满足则是复杂cors请求
1:请求方式:get、post、head
2:报头限制:只能包含如下报头信息 超过则是复杂请求Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain|
也就是意味者如果要自定义报头、发送cookie等功能 都是复杂请求
不管是复杂请求还是简单请求 在服务端设置的时候 复杂请求设置是涵盖了简单请求需要的设置的
######简单cors跨域

阅读全文 »