git使用

记住密码

git config –global credential.helper store

linux清除git账号密码

执行vi ~/.git-credentials,可以看到被保存的账号密码,删掉或者修改都可以了!
eg:http://账号:密码@git仓库http地址

git常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 增加readme.txt文件到暂存区
git add readme.txt

git status

# 丢弃工作区的修改
git checkout -- file

git checkout branchName

git pull

git merge branchName

# 就是查看远程的所有分支列表
git branch -a

# 撤销本地提交,回复到这个版本
git reset 1bb6c7b4d53764f2e46672148902008eef883d89

# 恢复到最后一次提交的改动
git checkout .

git最佳实践

解决git pull 和 git push 每次都需要输入密码的问题

查看更多

JSR303

使用时遇到的问题

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint ‘javax.validation.constraints.Size’ validating type ‘java.lang.Integer’. Check configuration for ‘titleType’

1
2
@Size(min = 1,max = 2,message = "发票抬头类型不正确")
private Integer titleType;

@Size表示集合的数量,而不是数值

查看更多

feign

启用

SpringBoot入口启动类添加注解@EnableFeignClients

设置动态header

1
2
3
4
5
6
7
8

//定义方法时设置
@GetMapping(value = "/api/business/contract/info",headers = {"X-ApiKey=${contract.token}"})
String getContractBySn(@RequestParam("ContractSn") String contractSn);

// 调用时设置
@PostMapping(value = “/getStuDetail”)
public ReturnInfo getStudentDetail(@RequestBody Map map,@RequestHeader(name = “token”) String token);

处理LocalDateTime

添加依赖

查看更多

web服务器

而 Web 容器其实就是 HTTP 服务器 + Servlet 容器,因为单单 Servlet 容器没有解析 HTTP 请求、通信等相关功能。
所以把 Tomcat、Jetty 等实现包含了 HTTP 服务器和 Servlet 容器的功能,称之为 Web 容器。
其实架构的设计就是一系列相关的抽象。
先是抽象出 HTTP 服务,用来通信和解析协议。
再因为业务的复杂,为了不和 HTTP 服务耦合又抽象了一层 Servlet。
由 Servlet 加载和管理 Servlet ,来控制请求转发到指定的 Servlet 实现类。

linux问题

linux rpm安装出现时need x MB sapce in filesystem解决办法

意味着kernel所在的文件系统中中没有足够的空间安装这个新的rpm包。

解决的办法就是删除不需要的内核来释放空间,从而安装新的更新。

1、首先查看当前正在运行的内核;uname -r

uname -r
2.6.27.5-117.fc10.i686

2、再查看现在所有内核:rpm -qa|grep kernel

rpm -qa|grep kernel
kernel-2.6.27.5-117.fc10.i686
kernel-devel-2.6.27.5-117.fc10.i686
kerneloops-0.12-1.fc10.i386

3、删除除正在运行之外的所有内核: yum remove (kernel you found which not running)

yum remove (kernel)

查看更多

swagger

常用注解

@Api:用在请求的类上,表示对类的说明
tags=”说明该类的作用,可以在UI界面上看到的注解”
value=”该参数没什么意义,在UI界面上也看到,所以不需要配置”

@ApiOperation:用在请求的方法上,说明方法的用途、作用
value=”说明方法的用途、作用”
notes=”方法的备注说明”

@ApiImplicitParams:用在请求的方法上,表示一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header –> 请求参数的获取:@RequestHeader
· query –> 请求参数的获取:@RequestParam
· path(用于restful接口)–> 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
dataType:参数类型,默认String,其它值dataType=”Integer”
defaultValue:参数的默认值

@ApiResponses:用在请求的方法上,表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如”请求参数没填好”
response:抛出异常的类

@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性

查看更多

vmware

Vm常用网络设置解释

  • 桥接:虚拟机跟宿主机处于同一网段(二者不是嵌套关系,是并列),前提是你宿主机所在局域网你有多余1个的IP,否则可能IP冲突。此外,需要手工为虚拟系统配置IP地址、子网掩码,且注意和宿主机器处于同一网段。
  • NAT:由vmware完成网络地址转换,最简单,无需额外配置,确保宿主机上VMware NAT Service和VMware DHCP Service运行状态即可
  • Host-only:Host-only模式和NAT模式一样,都是以宿主机为基础建立一个虚拟网络,所以Host-only模式的配置与NAT模式基本上完全一样,仅仅是Host-only不自带NAT功能,需要你手动配置NAT

    虚拟机连接外网

查看更多

使用自增id的缺点

使用自增id的缺点

  • 别人一旦爬取你的数据库,就可以根据数据库的自增id获取到你的业务增长信息,很容易分析出你的经营情况

  • 对于高并发的负载,innodb在按主键进行插入的时候会造成明显的锁争用,主键的上界会成为争抢的热点,因为所有的插入都发生在这里,并发插入会导致间隙锁竞争

查看更多

缓存算法(FIFO 、LRU、LFU三种算法的区别)

FIFO算法

FIFO 算法是一种比较容易实现的算法。它的思想是先进先出(FIFO,队列),这是最简单、最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小。空间满的时候,最先进入的数据会被最早置换(淘汰)掉。

FIFO 算法的描述:设计一种缓存结构,该结构在构造时确定大小,假设大小为 K,并有两个功能:

  • set(key,value):将记录(key,value)插入该结构。当缓存满时,将最先进入缓存的数据置换掉。
  • get(key):返回key对应的value值。
    实现:维护一个FIFO队列,按照时间顺序将各数据(已分配页面)链接起来组成队列,并将置换指针指向队列的队首。再进行置换时,只需把置换指针所指的数据(页面)顺次换出,并把新加入的数据插到队尾即可。
查看更多