接上章内容,我们看看浏览器参数如何映射到我们的Controller层 我们新建UserController和User实 User.java package com.example.main; import java.io.Serializable; public class User implements Serializable { /** * */ private static final long serialVersionUID = -7359143284242091031L; priv…
首先我们拿出之前的代码,在如图位置打上断点,开始调试 我们规定了一个mapper接口,而调用了mapper接口的getEmpByIdAndLastName,我们并没有实现这个接口,这是因为Mybatis会为这个接口创建一个代理对象,最终都是代理对象去调用实现. 在执行这个方法之前,代码会先来到MapperProxy.class中的invoke方法 public class MapperProxy<T> implements InvocationHandler, Serializable 我…
自限定 自限定将强制泛型当做自己的边界参数来使用.自限定所做的,就是要求在继承关系中,像下面这样使用这个类: class A extends SelfBounded<A> {} 它的意义是可以保证类型参数必须与正在被定义的类相同.自限定只能强制作用于继承关系.如果使用自限定,就应该了解这个类所用的类型参数将与使用这个参数的类具有相同的基本类型. 下面是一个自限定的例子[1]: class SelfBounded<T extends SelfBounded<T>> { T…