创建代理类,继承IUserDao接口,依赖注入UserDao:
@Component("UserProxyDao")
public class UserProxyDao implements IUserDao {
private UserDao UserDao;
public UserProxyDao() {}
public UserDao getUserDao() {
return UserDao;
}
@Resource
public void setUserDao(UserDao userDao) {
UserDao = userDao;
}
@Override
public void add(User user) {
Logger.info("add");
UserDao.add(user);
// TODO 自动生成的方法存根
}
@Override
public void delete(int id) {
// TODO 自动生成的方法存根
Logger.info("delete");
UserDao.delete(id);
}
@Override
public User load(int id) {
// TODO 自动生成的方法存根
Logger.info("load");
UserDao.load(id);
return null;
}
}
@Service("UserService")
public class UserService implements IUserService {
private IUserDao UserDao;
public IUserDao getUserDao() {
return UserDao;
}
@Resource(name="UserDynamicDao")
public void setUserDao(IUserDao userDao) {
UserDao = userDao;
}
@Override
public void add(User user) {
// TODO 自动生成的方法存根
UserDao.add(user);
}
@Override
public void delete(int id) {
// TODO 自动生成的方法存根
UserDao.delete(id);
}
@Override
public User load(int id) {
// TODO 自动生成的方法存根
UserDao.load(id);
return null;
}
}
@Resource(name="UserProxyDao"),为service注入代理DAO----UserProxyDao
静态代理优点:有效加了日记,并且没有破坏原来的结构
缺点:每一个类都需要加一个代理类,非常麻烦