12 若鱼1919

尚未进行身份认证

暂无相关简介

等级
TA的排名 5k+

MyBatis-Spring-Boot-Starter扫盲

springboot集成mybatis非常简单,只需要两部:(1)添加依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <vers...

2020-04-03 13:56:52

SpringBoot的@Configuration扫盲

@Configuration注解标识的类中声明了1个或者多个@Bean方法,Spring容器可以使用这些方法来注入Bean,比如:@Configurationpublic class AppConfig { //这个方法就向Spring容器注入了一个类型是MyBean名字是myBean的Bean @Bean public MyBean myBean() { // inst...

2020-03-28 10:30:08

MySQL-MyBatis-Tinyint填坑

先看下表结构:mysql> show create table user \G*************************** 1. row *************************** Table: userCreate Table: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT...

2020-03-11 22:39:43

为什么Mongodb索引用B树,而Mysql用B+树?

来源:https://zhuanlan.zhihu.com/p/107228878引言好久没写文章了,今天回来重操旧业。今天讲的这个主题,是《面试官:谈谈你对mysql索引的认识》,里头提到的一个坑。也就是说,如果面试官问的是,为什么Mysql中Innodb的索引结构采取B+树?这个问题时,给自己留一条后路,不要把B树喷的一文不值。因为网上有些答案是说,B树不适合做文件存储系统的索引结构。...

2020-03-04 14:50:09

MongoDB-Query

1.Document查询来自:Query Documents准备数据:db.inventory.insertMany([ { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, ...

2020-02-23 12:48:46

spring-data-mongodb是如何给collection创建索引的?

从spring-boot-autoconfigure开始堆栈如下:大致的逻辑梳理一下:系统启动的时候,spring-boot-autoconfigure根据spring.factories找那个配置的MongoDataAutoConfiguration去加载mongodb相关的配置,MongoDataAutoConfiguration这个类又会继续加载MongoDataCon...

2020-01-17 15:35:01

maven-resources-plugin的一些有趣的事

今天遇到一个很奇怪的问题,程序要输出特定字体的文字,因此把字体库放到了项目的resources下面,但是程序一加载字体库就报错:java.awt.FontFormatException: bad table, tag=1196445523 indicating然后就各种查,后来才发现,当把字体库文件打包到jar包中以后,再解压出来,字体库的字节数竟然发生了变化!那问题肯定出在打包的时候!再后...

2019-11-15 09:19:58

SpringBoot多Profile如何优雅打包?

原文在这里: SpringBoot多Profile如何优雅打包?一般项目的结构都是类似下面这种,有多个profile:其中,我们需要在application.yml中设置一个active的profile,如下:spring: profiles: active: dev这种方式,只需要在运行项目的时候设置–spring.profiles.active参数,如下:java ...

2019-09-03 19:47:07

前后端分离如何做SSO单点登录?

原文在这里:前后端分离如何做SSO单点登录?在前面的文章中单点登录系统SSO是如何实现的?我们实现了一个简单的单点登录,但是那里面有几个问题:一个是全局的token是在url中明文传递的,如果把这个url分享出去,任何人都可以使用这个token,还一个问题,现在的很多系统都是前后端分离的,我们之前介绍的还是传统的服务端渲染方式。本文就来看下如何解决这两个问题。实现的思路跟之前基本上差不多,...

2019-08-31 09:52:25

idea集成protobuf

idea集成protobufidea安装protobuf插件编写pom.xml编写proto文件,用idea插件生成源码测试idea安装protobuf插件编写pom.xml<protobuf-java.version>3.5.1</protobuf-java.version><protobuf-javanano.version>3.1.0</p...

2019-08-27 14:04:47

G1日志格式详解

原文在这里: G1日志格式详解从jdk9开始,G1已经是默认的垃圾收集器了,G1的一个非常重要的功能是它能够控制GC的停顿时间同时还不影响吞吐量(你可以设置期望的最大停顿时间)。随着G1变成默认的收集器,它的使用变得越来越常见和广泛了,为了调优G1的性能我们必须要了解G1的日志格式。需要注意,G1日志中有关于每一个细小的任务的详细的日志信息,但是本文主要介绍G1日志中一些主要的点。如何开启...

2019-07-30 08:23:14

监控系统CPU、内存、IO利器之-SAR

原文在这里: 监控系统CPU、内存、IO利器之-SARSAR全称是System Activity Report,它主要就是用来搜集、保存系统的CPU、内存、IO使用情况。SAR可以直接在命令行使用,也可以把输出结果保存到日志文件中。本文将介绍SAR在CentOS7上使用的一些例子,如果你的系统还没有安装SAR,可以用如下命令来安装:[root@localhost ~]# yum insta...

2019-07-26 08:36:46

JVM的GC停顿时间过长该怎么处理?

原文在这里: JVM的GC停顿时间过长该怎么处理?应用运行过程中是不希望出现长时间的GC停顿的,因为这会影响服务的可用性,导致用户体验变差,甚至会严重损害一些关键的应用程序。本文将会列出可能导致GC停顿时间长的一些原因和解决方案。1.对象创建的速度过高如果应用创建对象的速度非常高,随之而来的就是GC频率也会变快,然后会导致GC的停顿时间变长。所以说,优化代码以降低对象的创建速率是降低GC停...

2019-07-24 19:10:35

JVM出现连续的FullGC该怎么办?

原文在这里: JVM出现连续的FullGC该怎么办?FullGC是垃圾回收过程中一个非常重要的事件。当发生FullGC的时候,垃圾收集器为了回收更多的垃圾对象,它会从JVM的所有内存中回收垃圾(Young、Old、Perm、Metaspace)。FullGC有很多个步骤,有些步骤需要暂停所有的应用线程,在这个过程中JVM是无法处理用户的请求的。JVM会使用所有的CPU来做垃圾回收,因此CPU的...

2019-07-22 08:17:46

如何解决内存泄露?

原文在这里: 如何解决内存泄露?JVM总共会抛出8种类型的OutOfMemoryError,其中5种是发生在堆中的,包括:Java heap space、GC overhead limit exceeded、Requested array size exceeds VM limit、Permgen space、Metaspace。还有3种是发生在堆外的,包括:Unable to create ...

2019-07-18 11:20:14

应用的性能相关的指标有哪些?

原文在这里: 应用的性能相关的指标有哪些?现如今连天气都可以预报,那么通过技术手段来预测应用的性能和可用性是否可行呢?预计未来20分钟总可以吧?能否预计出来未来20分钟以内应用可能会发生内存溢出、CPU负载飙升、应用崩溃?很不幸大部分时候都无法预测。这主要因为我们主要是关注应用的内存使用率、CPU使用率、响应时间等宏观指标,但是还有很多其他的微观指标也会影响预测应用的性能和可用性,本文就来探讨...

2019-07-15 19:42:12

GC日志中real时间比user+sys时间长该如何处理?

原文在这里: GC日志中real时间比user+sys时间长该如何处理?GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以’user’、‘sys’、'real’3个维度来记录,这3个时间是什么意思呢?他们之间有什么区别?1.real time:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(ps:如果GC从8点开始,8点30结束,real...

2019-07-12 10:45:15

GC日志中sys时间比user时间长该如何处理?

原文在这里: GC日志中sys时间比user时间长该如何处理?GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以’user’、‘sys’、'real’3个维度来记录,这3个时间是什么意思呢?他们之间有什么区别?1.real time:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(ps:如果GC从8点开始,8点30结束,real time...

2019-07-10 08:28:48

OutOfMemoryError内存溢出相关的JVM参数

原文在这里: OutOfMemoryError内存溢出相关的JVM参数JVM提供了很多处理内存溢出的相关参数,本文主要来讲解下这些参数,当你遇到内存溢出的时候可能会对你非常有帮助,这些参数主要有:1.-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath2.-XX:OnOutOfMemoryError3.-XX:+ExitOnOutOfMemor...

2019-07-09 08:36:07

开启String去重XX:+UseStringDeduplication的利与弊

原文在这里: 开启String去重XX:+UseStringDeduplication的利与弊首先来看下由JDK开发组研究得出的一组有趣的统计数据:1.java应用内存里面的字符串占比大概是25%。2.java应用内存里面的字符串有13.5%是重复的。3.字符串的平均长度是45。由于存在重复字符串导致高达13.5%的内存被浪费了!你可以用HeapHero来分析看下你的应用中有多少内存是...

2019-07-03 13:02:02

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。