文章目录
- StudentServiceImpl
- StudentService.java
- StudentServiceProxy.java
- StudentServiceProxy1.java
- StudentServiceProxyTest.java
StudentServiceImpl
package com.aistart.service.impl;import com.aistart.mapper.StudentMapper;
import com.aistart.pojo.Student;
import com.aistart.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
public class StudentServiceImpl implements StudentService {@Overridepublic boolean addStu() {System.out.println("service调用执行,增加另一个学生");return false;}@Overridepublic boolean delStu() {System.out.println("service调用执行,删除另一个学生");return false;}
}
StudentService.java
package com.aistart.service;import com.aistart.pojo.Student;public interface StudentService {boolean addStu();boolean delStu();
}
StudentServiceProxy.java
package com.aistart.proxy;import com.aistart.logger.Logger;
import com.aistart.pojo.Student;
import com.aistart.service.StudentService;
public class StudentServiceProxy implements StudentService {private StudentService target;private Logger logger;public StudentServiceProxy(StudentService target, Logger logger) {this.target = target;this.logger = logger;}@Overridepublic boolean addStu() {logger.LogInfoBefore();boolean b = target.addStu();logger.LogInfoAfter();return false;}@Overridepublic boolean delStu() {logger.LogInfoBefore();boolean b = target.delStu();logger.LogInfoAfter();return false;}
}
StudentServiceProxy1.java
package com.aistart.proxy;import com.aistart.logger.Logger;
import com.aistart.service.StudentService;
import com.aistart.service.impl.StudentServiceImpl;
public class StudentServiceProxy1 extends StudentServiceImpl {private StudentService target;private Logger logger;public StudentServiceProxy1(StudentService target, Logger logger) {this.target = target;this.logger = logger;}@Overridepublic boolean addStu() {logger.LogInfoBefore();boolean b = target.addStu();logger.LogInfoAfter();return false;}@Overridepublic boolean delStu() {logger.LogInfoBefore();boolean b = target.delStu();logger.LogInfoAfter();return false;}
}
StudentServiceProxyTest.java
package com.aistart.proxy;import com.aistart.logger.Logger;
import com.aistart.service.StudentService;
import com.aistart.service.impl.StudentServiceImpl;
import org.junit.Test;import java.lang.reflect.Proxy;import static org.junit.Assert.*;public class StudentServiceProxyTest {@Testpublic void addStu() {StudentServiceImpl target = new StudentServiceImpl();Logger logger = new Logger();StudentService studentServiceProxy = new StudentServiceProxy(target, logger);studentServiceProxy.addStu();}}