态度决定一切

0%

简介

Spring Boot已经为很多的开源项目提供了很多的 starter项目,你也可以开发你自定义的 starter。再开始之前让我们先理解下Spring Boot是如何自动配置的,如果你已经知道 Spring Boot自动配置的过程可以直接调到创建自定义starter步骤。

阅读全文 »

  1. 首先随便打开一个网站

  2. 打开 console
    输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

var data = {
password: "xxx",
userName: "xxx"
};
var xhr = new XMLHttpRequest();
xhr.open('post', 'http://127.0.0.1:8080/console/login');
xhr.setRequestHeader("Content-type","application/json");
xhr.setRequestHeader("SESSION_TOKEN","112233");
xhr.setRequestHeader("CONSOLE_SESSION_TOKEN","112233");


xhr.send(JSON.stringify(data));
xhr.onload = function(e) {
var xhr = e.target;
console.log(xhr.responseText);
}
  1. 修改域名、参数、header等信息即可

Mybatis面试连环炮

先抛出几个问题,然后带着问题一起看下 Mybatis官网如何解释这个问题。

什么是Mybatis?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

阅读全文 »

java 远程调试

调试对于排查 java 各种异常问题非常重要,相信本地调试大家都很熟悉,今天分享一下如何开启远程调试。

  1. 如果需要编译.java文件执行命令javac,生成.class文件件

    1
    javac SynchronizedStudy.java
  2. 执行编译过后的.class文件

    • 如果当前类有包路径到包的根路径下执行

      1
      java com.xxx.xx.SynchronizedStudy
    • 如果当前类没有包直接执行

      1
      java SynchronizedStudy
阅读全文 »

  1. 过滤器(Filter)
  2. 拦截器(Interceptor

Filter

  • Filter是servlet规范中定义的java web组件, 在所有支持java web的容器中都可以使用

  • Filter和Filter Chain是密不可分的, Filter可以实现依次调用正是因为有了Filter Chain

上图是Filter对请求进行拦截的原理图, 那么java web容器(以tomcat为例子)是如何实现这个功能的呢?

下面看下Filter和Filter Chain的源码

阅读全文 »

##标记清楚算法(Mark-Sweep)

##复制算法(Copying)
为了解决Mark-Sweep算法内存碎片化的缺陷而被提出的算法。按内存容量将内存划分为等大小的两块。每次只使用其中一块,当这一块内存满后将尚存活的对象复制到另一块上去,把已使用的内存清掉,如图:

这种算法虽然实现简单,内存效率高,不易产生碎片,但是最大的问题是可用内存被压缩到了原本的一半。且存活对象增多的话,Copying算法的效率会大大降低。

阅读全文 »