import com.atguigu.congig.JavaConfig;
import com.atguigu.service.Calculator;
import org.junit.jupiter.api.Test;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
@SpringJUnitConfig(value = JavaConfig.class)
public class SpringAopTest {
private Calculator calculator;
@Test
public void test() {
int add = calculator.add(1, 1);
System.out.println("add = " + add);
}
}
常见的NullPointerException的原因:
1.JavaConfig类正确地定义了Calculator的bean,并且Spring能够找到这个类。
2.Calculator类有一个无参构造器,因为它会被Spring使用。
3.SpringAopTest类上的@SpringJUnitConfig注解正确地指向了JavaConfig类。
4.SpringAopTest类中的calculator字段被Spring正确地注入。
我的问题是没有将calculator注入spring容器中。
修改后就正确了;
import com.atguigu.congig.JavaConfig;
import com.atguigu.service.Calculator;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
@SpringJUnitConfig(value = JavaConfig.class)
public class SpringAopTest {
/**
* aop-代理-jdk-接口-代理类-代理对象和目标对象,-接口按值
* aop-ioc-代理对象
*/
@Autowired
private Calculator calculator;
@Test
public void test() {
int add = calculator.add(1, 1);
System.out.println("add = " + add);
}
}