静态代理:
1.我有一个功能类,实现增删改查,先写接口和实现,然后写个tes类调用,如下代码
public interface UserService {
public void add();
public void delete();
public void update();
public void query();
}
public class UserServiceImpl implements UserService {
@Override
public void add() {
System.out.println("增");
}
@Override
public void delete() {
System.out.println("删");
}
@Override
public void update() {
System.out.println("改");
}
@Override
public void query() {
System.out.println("查");
}
}
@Test
public void myServiceTest()
{
UserServiceImpl userService= new UserServiceImpl();
userService.add();
}
2.我想在每个方法前加一条日志功能。实现方法当然是可以在每个方法前写一句话,如果不想这样做呢?
新写一个implements
这就是静态代理。很显然,这并不便捷。于是有了动态代理。参看下篇。
public class UserServiceProxy implements UserService {
private UserServiceImpl userService;
public void log(String msg)
{
System.out.println("使用"+msg);
}
@Override
public void add() {
log("add");
userService.add();
}
@Override
public void delete() {
log("delete");
userService.delete();
}
@Override
public void update() {
log("update");
userService.update();
}
@Override
public void query() {
log("query");
userService.query();
}
public void setUserService(UserServiceImpl userService) {
this.userService=userService;
}
}