09 2018 档案
摘要:数据查找过程: 二级缓存(默认关闭) -> 一级缓存(默认开启) -> 数据库 一级缓存: 一级缓存是SqlSession自带的。SqlSession对象被创建,一级缓存就存在了。//是针对每一个sqlSession进行缓存。 如果SqlSession对象关闭或调用清理方法,会导致缓存失效。 缓存底
阅读全文
摘要:数据库的四大特性ACID: 1. 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。 2. 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 3. 隔离
阅读全文
摘要:正常情况下,我们设置表的主键自增,然后: 可以直接插入,秒杀订单标的id字段用的是数据库自增长策略 但是,如何获在插入后,获取id的值呢,如果通过查询获取id,也太low了,用@SelectKey注解: select last_insert_id() 取到最后生成的主键,自动放到pojo的id属性!
阅读全文
摘要:MYSQL索引有四种 PRIMARY(唯一且不能为空;一张表只能有一个主键索引)、 INDEX(普通索引)、 UNIQUE(唯一性索引)、 FULLTEXT(全文索引:用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以) 这样的组合索引,其实相当于分
阅读全文
摘要:转发页面: 一般都是controller将数据转发到指定的模板上,模板引擎(视图解析器)(modelAndView)帮我们去渲染页面,然后将渲染好的页面发给浏览器另一种做法是,我们去用模板引擎加载数据,提前产生好页面,将这个页面的html语句作为json发送给浏览器
阅读全文
摘要:转载:https://blog.csdn.net/wangshuang1631/article/details/70753801 方法一,修改application.properties文件 增加如下配置: 此时拦截器中返回的中文已经不乱码了,但是controller中返回的数据依旧乱码。 方法二,
阅读全文
摘要:一.编写WebMvcConfig配置类: 重写addArgumentResolvers方法,将解析类加入 二.编写ArgumentResolver解析类: 三.修改Controller入口参数类型:
阅读全文
摘要:1.在application.properties中禁用模板引擎缓存 2.在pom.xml中添加依赖 3.修改IEDA设置 1)打开 Settings --> Build-Execution-Deployment --> Compiler,将 Build project automatically.
阅读全文
摘要:编写validation自定义注解:
阅读全文
摘要:redis:通常BOLEAN操作类型,操作成功返回1,操作失败返回0 通常如果往设置的key插入值,但是这个key不存在,redis则会创建 向redis里的某个key插入多个值时,值和值之间用空格隔开,不能使用(,) redis操作里,b开头的都是代表阻塞的意思 key篇: //这里的key为所有
阅读全文
摘要:转载http://www.jsondream.com/2017/06/12/about-JUC.html
阅读全文
摘要:偏向锁: 首先了解对象头MARK指针(对象头标记,32位): 存储GC标记,对象年龄,对象Hash,锁信息(锁记录的指针,偏向锁线程的ID) 大部分情况是没有竞争的,所以可以通过偏向来提高性能 所谓的偏向,即锁会偏向于当前已经占有锁的线程 ,通过将对象头Mark的标记设置为偏向,并将线程ID写入对象
阅读全文
摘要:首先查看服务器版本默认信息: 修改tomcat/bin/catalina.sh,在最顶端加入JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -Xloggc:/usr/local/java/apache-tomcat-7.0.78/bin/gc.log" 随后在 -
阅读全文
摘要:转载:https://www.cnblogs.com/gdpuzxs/p/7191436.html 在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不同,比如,端口,IP地址等等。如果在打包时候都频繁的修改配置文件信息,那必将是非常容易出错的地方。
阅读全文
摘要:转载:https://www.cnblogs.com/gdpuzxs/p/7044963.html Java类加载机制及自定义加载器 一:ClassLoader类加载器,主要的作用是将class文件加载到jvm虚拟机中。jvm启动的时候,并不是一次性加载所有的类,而是根据需要动态去加载类,主要分为隐
阅读全文
摘要:转载https://www.cnblogs.com/gdpuzxs/p/7224959.html (1)pom.xml文件修改<packaging>war</packaging>,默认是jar包,<build>节点中增加<finalName>springboot</finalName>,即生成war
阅读全文
摘要:参考https://blog.csdn.net/tjiyu/article/details/53983650 Java垃圾收集器组合: 新生代收集器:Serial、ParNew、Parallel Scavenge; 老年代收集器:Serial Old、Parallel Old、CMS; 整堆收集器:
阅读全文
摘要:GC算法一般来说分为: 引用计数法(过时) 、标记清除、 标记压缩、 复制算法 GC的对象是堆空间(新生代、老年代)和永久区(永久代) 1.引用计数法: 目前使用者比如python 引用计数器的实现很简单,对于一个对象A(每个对象都有一个引用计数器),只要有任何一个对象引用了A,则A的引用计数器就加
阅读全文
摘要:堆的分配参数: -Xmx //设立最大堆 -Xms //最小堆,初始化堆大小 -Xmn //设置新生代(eden+2*surviivor+old)大小 官方推荐:3/8Xmx 》感觉就是-XX:NewRatio 2到3之间 -XX:NewRatio //新生代(eden+2*s)和老年代(不包含永久
阅读全文
摘要:参考https://www.cnblogs.com/dolphin0520/p/3920373.html JVM启动流程 1.java虚拟机启动的命令是通过java +xxx(类名,这个类中要有main方法)或者javaw启动的。 2.执行命令后,系统第一步做的就是装载配置,会在当前路径中寻找jvm
阅读全文
摘要:转载:https://wangkang007.gitbooks.io/jvm/content/la_ji_shou_ji_qi.html 收集器 1.1 Serial(串行)收集器 Serial收集器是一个新生代收集器(Serial Old对应老年代),单线程执行,使用复制算法。它在进行垃圾收集时,
阅读全文
摘要:JVM区域总体分两类,heap区和非heap区。 heap区又分为: - Eden Space(伊甸园)、 - Survivor Space(幸存者区)、 - Old Gen(老年代)。 1个Eden区和2个Survivor区(分别叫from和to)。默认比例为8:1, 非heap区又分: - Co
阅读全文
摘要:设置GC指令和方法: 1. JVM内存分配设置的参数有四个 -Xmx Java Heap最大值,默认值为物理内存的1/4; -Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值; -Xmn Java Heap Young区大小,不
阅读全文
摘要:出处:http://blog.csdn.net/qq_26525215 @EnableAspectJAutoProxy @EnableAspectJAutoProxy注解 激活Aspect自动代理 开启对AspectJ自动代理的支持。 在用到AOP的自动代理的时候用,如果你理解了Java的动态代理,
阅读全文
摘要:这是几种较为常见的方式,其中第一种,必须在需要引用的类上加上@EnableConfigurationProperties注解,配合@ConfigurationProperties一起使用
阅读全文
摘要:JWT:就是靠给客户端(浏览器)一个规范凭证(签名),然后服务器解析签名,代替原有的session存值。 不带refreshToken的JWT例子:https://blog.csdn.net/u011277123/article/details/78918390 refreshToken是保存在服务
阅读全文
摘要:转载:http://blog.51cto.com/liukang/2046423 属于结构型模式,它是作为现有的类的一个包装,是继承关系的一个替代方案。 Java I/O的设计就是采用了装饰者模式,各种InputStream和OutputStream层层嵌套,感觉就像洋葱,如果给装饰者一个形象化的吉
阅读全文