摘要: 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。 JAVA_OPTS参数说明 -server 启用jdk 的 server 版; -Xms java虚拟机初始化时的最小 阅读全文
posted @ 2018-01-15 11:49 start枫 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 所谓的类加载机制就是JVM使用类加载器将编译生成的Class文件动态加载到JVM的内存空间中,最终形成可以被JVM使用的Java类型。一般情况下,Java应用开发人员不需要直接同类加载器进行交互,Java虚拟机提供的默认类加载器就已经能够满足大多数情况了。但是,如果想要往更深方向延伸,如热修复或者热 阅读全文
posted @ 2018-01-15 11:03 start枫 阅读(1663) 评论(1) 推荐(0) 编辑
摘要: 在分布式系统中,同时满足“CAP定律”中的“一致性”、“可用性”和“分区容错性”三者是不可能的 分布式事务 提到分布式系统,必然要提到分布式事务。要想理解分布式事务,不得不先介绍一下两阶段提交协议。先举个简单但不精准的例子来说明: 第一阶段,张老师作为“协调者”,给小强和小明(参与者、节点)发微信, 阅读全文
posted @ 2018-01-02 15:41 start枫 阅读(9293) 评论(0) 推荐(0) 编辑
摘要: CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而 阅读全文
posted @ 2017-12-26 14:46 start枫 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门,百度一下,很多入门的介绍。在这篇文章的接下来一篇,会有一 阅读全文
posted @ 2017-12-25 14:57 start枫 阅读(77224) 评论(13) 推荐(28) 编辑
摘要: @PersistenceContext EntityManager em; 从别的系统中定期同步某张表的数据,由于数据量较大,采用批量保存 JPA EntityManager的四个主要方法 ① public void persist(Object entity) persist 方法可以将实例转换为 阅读全文
posted @ 2017-12-25 14:48 start枫 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务( 阅读全文
posted @ 2017-12-13 15:11 start枫 阅读(692) 评论(0) 推荐(0) 编辑
摘要: (一)关于分页拦截器的简单理解 首先,要开发MyBatis的插件需要实现org.apache.ibatis.plugin.Interceptor接口,这个接口将会要求实现几个方法:intercept()、plugin()及setProperties(),intercept方法是开发人员所要执行的操作 阅读全文
posted @ 2017-12-12 10:27 start枫 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 最近项目中出现了至少两次因为Mybatis的动态where条件不满足导致实际sql语句的where条件为空,进而查询全表,当数据量比较大的时候,导致OOM的情况. 如何禁止这种情况,个人觉得三种措施: 1.在逻辑层面加充分的参数有效性检查; 2.在where条件中如果索引条件都不满足,加上1=2这种 阅读全文
posted @ 2017-12-11 18:39 start枫 阅读(2591) 评论(0) 推荐(0) 编辑
摘要: 首先约定文中将的四大对象是指:executor, statementHandler,parameterHandler,resultHandler对象。(为了方便下面的文章说道四大对象就专指它们) 讲到statementHandler,毫无疑问它是我们四大对象最重要的一个,它的任务就是和数据库对话。在 阅读全文
posted @ 2017-12-11 18:11 start枫 阅读(3718) 评论(0) 推荐(1) 编辑