springboot对参数进行校验
如何按照自定的规则进行校验?自定义注解@Target({TelephoneNumberValidator . class }) // 指定校验器 public @interface TelephoneNumber {Class
数据库中主键ID的生成方案
数据库表里通常都会有一个主键id,来作为这条数据的唯一标识。主键 一定要做到唯一,mysql数据库提供的自增主键可以作为主键ID,UUID全球唯一的特性也是一个方案,那究竟应该选哪种方案,每种方案的优劣又是什么?
Token和Refresh Token
JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证;应用场景如用户登录。
【渝粤教育】国家开放大学2018年春季 3950T金融基础 参考试题
试卷代号:3950金融基础 试题2018年7月一、单项选择题(每小题2分,共20分,每小题有一项答案正确,请将正确答案的序号填写在括号内)1.商业银行不用或少用自有资金,代客户办理收付或其他委托事项,提供各类金融服务并收取手续费的业务是商业银行的( )。A.资产业务 B.负债业务C.中间业务 D.投资业务2.下列属于货币政策远期中介目标的是( )。A.货币供应量与长期利率 B.货币供应量与短期利率C.基础货币与长期利率 D.存款准备金与短期利率3.下列不
springboot+vue前后端分离跨域问题
同源策略是一种约定,它是浏览器最核心也最基本的安全功能,同源是指"协议+域名+端口"三者相同,比如http://localhost:8080与http://localhost:8181就不是同源。
Java实现Token登录验证(基于JWT的token认证实现)
文章目录一、JWT是什么?二、使用步骤1.项目结构2.相关依赖3.数据库4.相关代码三、测试结果一、JWT是什么?在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程:1、客户端使用用户名和密码请求登录2、服务端收到请求,验证用户名和密码3、验证成功后,服务端会签发一个token,再把这个token返回给客户端4、客户端收到token后可以把它存储起来,比如放到cookie中5、客户端每次向服务端请求资源时需要携带服务端签发的token,可以在co
PageHelper是怎么分页的
PageHelper是mybatis 提供的分页插件,通过就可以帮我们实现分页,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。pom依赖:
springboot的自动装配
通过引入依赖(Starter),从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理,这就是springboot的自动装配。指定的生效条(Starters提供的依赖、配置或Spring容器中是否存在某个Bean等)时,实例化该AutoConfiguration类中定义的Bean,并注入Spring容器,就可以完成依赖框架的自动配置。注解的入口程序类所在的basepackage下的所有带有。
好文转载:堆(heap)和栈(stack)有什么区别?
heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。
synchronized与Lock的异同
synchronized与Lock都能进行加锁,不过不同的是Synchronized 是Java的一个关键字,而Lock是java.util.concurrent.Locks 包下的一个接口,底下有不同的实现方式。另外,synchronized可以用在代码块上、方法上;当方法调用时,调用指令将会检查方法的 ACC_SYNCHRONIZED 访问标志是否被设置,如果设置了,执行线程将先获取monitor,获取成功之后才能执行方法体,方法执行完后再释放monitor。静态方法锁相当于该类的一个全局锁。
Java中Sychronized的锁升级
无锁状态下线程 A 初次执行到synchronized代码块的时候,锁对象变成偏向锁,执行完同步代码块后,线程并不会主动释放偏向锁,后续线程 A 再次访问同步代码时,不需要做任何的 check,直接执行(偏向于第一个获得它的线程),这样降低了获取锁的代价,提升了效率。无锁、偏向锁的 lock 标志位是一样的,即都是 01,无锁、偏向锁是靠字段 biased_lock 来区分的,0 代表没有使用偏向锁,1 代表启用了偏向锁。后续的竞争线程都会通过自旋来尝试获取锁,如果自旋成功那么锁的状态仍然是轻量级锁。
Golang的字符串类型,底层实际上是C
今天学习Golang的 String 类型尝试一下用C语言的传统办法,输出结果,fmt.Println 输出的是,字符串数组中单个字符的ASCII码fmt.Printf里,用%c占位符,输出的是字符串数组的单个字符!原来如此,妙的很!虽然Golang关键字内并无char类型,但实际上底层的字符串数组完好无损。package mainimport ( "fmt")func main() { a := "string" n := len(a) for i := 0; i &l
高并发下的计数——LongAdder
高并发下计数,一般最先想到的应该是AtomicLong/AtomicInt,AtomicXX能保证并发情况下计数的准确性,其内部通过CAS来解决并发安全性的问题。当有大量线程同时去更新一个变量,任意一个时间点只有一个线程能够成功,绝大部分的线程在尝试更新失败后,会通过自旋的方式再次进行尝试,这样严重占用了CPU的时间片,进而导致系统性能问题。LongAdder采用分段的方式,通过维护一个基准值base和 Cell 数组降低并发冲突的概率。
今日推荐
周排行