静态代理
一开始的代码

现在新增一个需求,比如说我们保存用户之前先要打印日志
不能修改以前的代码(可能很多人在用)
这时候我们新建一个代理类,同样实现这个接口,但是在前后加上我们需要的功能,
重点:我们调用的时候还是需要调用原来impl的,只是在他的上下加上我们后面需要的代码



参数类型写成 UserService(接口),是为了兼容所有实现类 。
但你实际传进去的,永远是 UserServiceImpl 这样的具体对象 。
类型是"门框",实际对象是"进门的人"。
重点:我们手写代理类的时候,需要传参,把imp传进去,但是我们一般写接口好一点,写接口传进去,他的子类都能传进去
