`
文章列表
git commit 主要是将暂存区里的改动提交到本地的版本库。每次使用git commit 命令我们都会在本地版本库生成一个40位的哈希值,这个哈希值也叫commit-id。 commit-id在版本回退的时候是非常有用的,它相当于一个快照,可以在未来的 ...
Git add 的一般形式为:git add [参数]  [--] <路径> 表示将需要提交的代码从工作区添加到暂存区。为了方便,一般都用 . 来标识路径, . 表示当前目录。   1. git add . 网上普遍的说法是:将修改操作的文件和未跟踪且为新添加的文件添加到git系统的暂存区,但不包括删除的文件。 但实际测试,git add . 同样会将删除的文件添加到暂存区。   远程仓库中有a.txt和c.txt。此时,修改了a.txt,删除了c.txt,并新增了一个d.txt  使用git add . 命令提交到暂存区,再进行查看
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> 。 例如:git push origin master :refs/for/master 即是将本地的master分支推送到远程主机origin上的对应master分支。origin 是远程主机名,第一个master是本 ...
用户下订单购买,因为各种原因(网络卡,快递点击等)重复提交2个或者以上一模一样的订单,由于是同时提交的,第一个订单执行扣款生成订单未完成时候,第二个已经进来了,导致付一笔钱购买了2次或多次商品。   解决方案: 1、缓存lock,缓存此用户的操作行为,注意紧紧缓存操作的标志,下次进入判断此标志是否存在,存在即不进入数据库事务 2、应用程序application lock,和1相比,会阻塞其他用户的正常行为 3、模仿银行扣款机制,数据表建一个随机唯一标志,每次请求带上这个标志,操作的同时进行修改这个标志 4、应用程序生成唯一标志,数据库做字段的唯一索引 5、扣款为负数的事务进行回滚 ...
在使用HttpClient请求数据的时候,请求参数的封装有两种方式:UrlEncodedFormEntity() 和StringEntity()。   UrlEncodedFormEntity()是将请求参数解析为key=value&key=value的形式。 如:使用UrlEncodedFormEntity()发送请求格式为:{"age":"14","name":"lili","userId":1},那么服务端接收到的请求参数为:age=14&name=lili& ...
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked的。如果遇到checked意外就不回滚。   如何改变默认规则: 1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.c ...
在app开放接口API的设计中,避免不了的就是安全性问题。   一、https协议 对于一些敏感的API接口,需要使用https协议。 https是在http超文本传输协议加入SSL层,它在网络间通信是加密的,所以需要加密证书。   二、签名设计 原理:用户登录后向服务器提供用户认证信息(如账户和密码),服务器认证完后给客户端返回一个Token令牌,用户再次获取信息时,带上此令牌,如果令牌正确,则返回数据。对于获取Token信息后,访问用户相关接口,客户端请求的url需要带上如下参数: 时间戳:timestamp
为什么使用索引? 在无索引的情况下,MySQL会扫描整张表来查找符合sql条件的记录,其时间开销与表中数据量呈正相关。对关系型数据表中的某些字段建索引可以极大提高查询速度(当然,不同字段是否selective会导致这些字段建立的索引对查询速度的提升幅度不同,而且索引也并非越多越好,因为写入或删除时需要更新索引信息)。 对于MySQL的Innodb储存引擎来说,大部分类型的index均以B-Tree数据结构的变种B+Tree来存储(MEMORY类型的表还支持hash类型的索引)。B-Tree是数据库或文件系统中常用的一种数据结构,它是一种N叉平衡树,这种树结构保证了同层节点保存的key有序 ...
记录一下安装环境的过程:   一、安装Apache组件 由于CentOS已经封装了Apache,所以直接运行安装。 如果想知道自己的服务器是否已安装了Apache,可以cd到/etc/rc.d/init.d/目录下,查看是否有httpd。 使用httpd -v查看已安装的httpd版本 使用rpm -qa | grep httpd 查看是否已经安装了httpd 使用ps -ef | grep httpd查看httpd的进程 
用Spring Boot搭建的项目,一般来说,实际项目中,为了提高服务的响应能力,我们一般会通过负载均衡的方式,或者反向代理多个节点的方式来进行。通俗点来说,我们一般会将项目部署多实例,或者说部署多份,每个实例不同的启动端口。但是每个实例的代码其实都是一样的。如果我们将定时任务写在我们的项目中,就会面临一个麻烦,就是比如我们部署了3个实例,三个实例一启动,就会把定时任务都启动,那么在同一个时间点,定时任务会一起执行,也就是会执行3次,这样很可能会导致我们的业务出现错误。   这时,我们有几种简单的办法来处理: 1、配置文件中增加自定义配置,通过开关来进行控制:比如增加:schedule ...
在发送短信的时候,一般需要增加图片验证码功能,用以防刷。这里介绍下验证码生成:   请求方法: /** * 获取生成图片验证码 * @param request * @param response * @return * @throws Exception */ @RequestMapping("/getImageCode") public void getImageCode(HttpServletRequest request, HttpServletResponse response) throws Exception { // ...
在Jquery ajax方法中async用于控制同步和异步。当async值为true时是异步请求,当async值为fase时是同步请求。默认是true,即默认以异步的方式请求数据。   同步是指当JS代码加载到当前AJAX的时候,页面中其他的代码会停止加载,页面出现假死状态。只有当这个AJAX执行完毕后,才会继续运行其他代码页面,假死状态解除。而异步则是这个AJAX代码运行中的时候,其他代码一样可以运行。   一、async值为true (异步) 当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去 ...
对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去除。   当set集合存储的是对象类型时,就需要在对象的实体类里面重写public boolean equals(Object obj) {} 和 public int hashCode() {} 两个方法。   代码实例: public class Student { public String id; public String name; public Student() { } publ ...
Map转JSONObject JSONObject json = JSONObject.parseObject(JSON.toJSONString(itemMap));     JSONObject转Map Map<String, Object> map = JSONObject.toJavaObject(itemJSONObj, Map.class); 注:JSON.parseObject()同样可以转换     List转JSONArray JSONArray array = JSONArray.parseArray(JSON.toJSONString(i ...
对于在web 项目中,Service层和Dao层用接口来维护。相信有很多人都会这么认为:我做了几年项目,从没发现业务代码中Service或Dao接口有第二个实现类。写一个方法需要先在接口声明一次,再实现一次,很麻烦,不如直接实现。   实际意义: 接口的优势大家应该都明白:只关心接口的调用,而不用去关心内部实现;在团队开发时,可以更好的实现同步开发。提供方和使用方只要前期定义好接口,前后端就可以进行同步开发,而不需要等后端开发完之后前端才能开发;   https://www.oschina.net/question/935784_247005?sort=default&p= ...
Global site tag (gtag.js) - Google Analytics