声明接口:
public interface Cal {
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div(int a,int b);
}
实现类:
@Component
public class CalImpl implements Cal{
@Override
public int add(int a, int b) {
int result = a + b;
return result;
}
@Override
public int sub(int a, int b) {
int result = a - b;
return result;
}
@Override
public int mul(int a, int b) {
int result = a * b;
return result;
}
@Override
public int div(int a, int b) {
int result = a / b;
return result;
}
}
自定义切面类:
@Component
@Aspect
public class aspect {
@Before("execution(public int com.atguigu.test.AOP.CalImpl.*(..))")
public void before(JoinPoint joinPoint){
String name = joinPoint.getSignature().getName();
System.out.println(name + "方法参数是:" + Arrays.toString(joinPoint.getArgs()));
}
@AfterReturning(value = "execution(public int com.atguigu.test.AOP.CalImpl.*(..))",returning = "result")
public void afterReturning(JoinPoint joinPoint,Object result){
String name = joinPoint.getSignature().getName();
System.out.println(name + "方法的返回值是:" + result);
}
}
测试类:
@SpringBootTest
public class AOPTest {
@Autowired
private CalImpl cal;
@Test
public void test(){
System.out.println(cal.add(8, 9));
System.out.println(cal.sub(8, 9));
System.out.println(cal.mul(8, 9));
System.out.println(cal.div(8, 9));
}
}
运行结果:
请问大佬:
为什么在spring中,获取bean对象时 需要用接口 而不是实现类?
在springboot中,采用实现类对象进行依赖注入,就可以获取到代理对象进行操作呢?