05 2020 档案

摘要:1,基于你对于Springboot的理解,描述一下什么是Springboot? springboot框架是为了能够帮助spring开发者快速高效的构建一个基于spring框架及spring生态体系的应用的解决方案,它是对“约定优于配置”这个理念下的一个最佳实现方案,因此它是一个服务于框架的框架,服务 阅读全文
posted @ 2020-05-23 12:12 gnice512 阅读(3368) 评论(0) 推荐(0)
摘要:1,使用配置1.1 引入mybatis整合spring的jar包 org.mybatis mybatis-spring ${mybatis-spring.version} org.mybatis my... 阅读全文
posted @ 2020-05-15 17:17 gnice512 阅读(166) 评论(0) 推荐(0)
摘要:1,核心对象Configuration: mybatis的核心配置类,里面维护了mybatis的各种属性。Sqlsession: 一个会话,里面定义了各种操作数据库的方法,和应用层交互。Executor: Mybatis执行器,负责生成Sql和查询缓存。StatementHanler: 负责对JDBC Statement的操作,例如设置参数。ParameterHandler: 负责将用户参数转换为... 阅读全文
posted @ 2020-05-15 14:34 gnice512 阅读(353) 评论(0) 推荐(0)
摘要:一段独立运行的mybatis代码,将文件读取成流这一步暂时略过。一,创建一个工厂类 完成config配置文件,mapper文件,mapper接口上的注解的解析,得到了一个Configuration对象。最后返回了一个DefaultSqlSessionFactory,里面持有了Configuration的实例。 typeAliasRegistry.registerAlias(a... 阅读全文
posted @ 2020-05-12 21:21 gnice512 阅读(150) 评论(0) 推荐(0)
摘要:为了提升查询效率和减少数据库的查询压力,mybatis提供了一级和二级缓存。 mybatis的缓存是在Cache接口中,它只有一个默认的实现类PerpetualCache,用HashMap实现,剩下的都是装饰类一级缓存 一级缓存是在sqlSession层面的,所以在参数和sql完全一样的情况下查询才会走一级缓存。默认开启,不需要任何的配置。 存放位置:sqlSession... 阅读全文
posted @ 2020-05-11 16:01 gnice512 阅读(190) 评论(0) 推荐(0)
摘要:1,核心对象的生命周期SqlSessionFactoryBuilder(方法局部[ Method ]):只是用来构建SqlSessionFactory的,构建完了它就没用了,所以它的生命周期在方法的局部SqlSessionFactory(应用级别[ Application ]):用来创建SqlSession的,每次应用程序访问数据库都需要创建一个会话,所以它应该存在于引用的这个生命周期中,创建Sq... 阅读全文
posted @ 2020-05-11 11:31 gnice512 阅读(153) 评论(0) 推荐(0)
摘要:JVM的内存划分如下图,在JDK1.8版本废除了永久代,替代的是元空间,元空间与永久代类似,都是对方法区的实现,他们最大的区别是:Metaspace使用的是本地内存而不是JVM内存。也就是默认情况下Metaspace的大小只与本地内存大小有关。 这两个参数来指定元空间的大小:-XX:MetaspaceSize,初始空间大小,-XX:MaxMetaspaceSize,最大空间,默认是没... 阅读全文
posted @ 2020-05-07 11:20 gnice512 阅读(268) 评论(0) 推荐(0)
摘要:前言 在java中,如果每个请求到达就创建一个新线程,那么创建和销毁线程所花费的时间是非常巨大的,如果创建过多的线程,会使内存使用过多或者线程切换过于频繁导致系统资源不足。如果使用线程池,事先创建好一定的线程,用一个容器维护,每次任务进来就从池里面获取一个线程,任务执行完就把线程还给线程池。 (1) 阅读全文
posted @ 2020-05-06 17:14 gnice512 阅读(160) 评论(0) 推荐(0)
摘要:阻塞队列介绍 1,ArrayBlockingQueue:数组实现的有界阻塞队列, 此队列按照先进先出(FIFO)的原则 对元素进行排序。 2,Li​nkedBlockingQueue:链表实现的有界阻塞队列, 此队列的默认和最大长度为 Integer.MAX_VALUE。此队列按照先进先出的原则对元 阅读全文
posted @ 2020-05-06 16:48 gnice512 阅读(260) 评论(0) 推荐(0)
摘要:1,使用及场景 CHM是J.U.C提供的一个线程安全且高效的HashMap,api基本和Hashmap类似,主要有get,put等方法。 2,源码分析 2.1 JDK1.7和1.8的变化​ JDK1.7,简单来说chm是一个segment数组,它通过集成ReentrantLock进行加锁,通过每次锁 阅读全文
posted @ 2020-05-06 15:25 gnice512 阅读(160) 评论(0) 推荐(0)
摘要:用一个小故事来梳理数字签名:1,鲍勃有两把钥匙,一把公钥一把私钥。2,鲍勃把公钥送给他的朋友,帕蒂,道格和苏珊每人一把。3,苏珊想给鲍勃写一份保密的信,用鲍勃的公钥加密之后就可以达到保密的效果。4,鲍勃收到之后,用鲍勃的私钥解密之后就可以看到信的内容,只要鲍勃的私钥不泄露,这封信就是绝对安全的。5,鲍勃想写回信给苏珊,采用数字签名,先用Hash函数生成信件内容的摘要(MD5或者SHA算法)。6,鲍... 阅读全文
posted @ 2020-05-01 14:24 gnice512 阅读(304) 评论(0) 推荐(0)
摘要:1,加密方法可以分为两大类。一类是单钥加密(private key cryptography),还有一类叫做双钥加密(public key cryptography)。前者的加密和解密过程都用同一套密码,后者的加密和解密过程用的是两套密码。2,在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要。一旦密钥泄漏,密码也就被破解。3,在双钥加密的情况下,密钥有两把,一把是公开的公钥,还... 阅读全文
posted @ 2020-05-01 13:17 gnice512 阅读(175) 评论(0) 推荐(0)