问题如下:所有的配置都检查过了,写测试类的时候使用junit进行测试,发现不行,这个属性没有被注入。
解决办法:要使用spring整合junit来进行测试,因为你必须在这个测试类中告诉它:嘿,我这个BookService的实现类已经注入到Spring容器中了,你去找吧。
解决:
1.新增依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
2.类上加上两个注解,告诉测试类我使用了Spring的IoC容器:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class BookServiceTest {
@Autowired
private BookService bookService;
@Test
public void testSelectOne(){
Book book = bookService.showOneBook(1);
System.out.println(book);
}
}
3.测试结果:
总结,这里有个小细节,就是如果属性被注入了的话,idea会在左侧有个小图标提示你,哦,这个类IoC容器已经有了,待会帮你自动装配即可。
如果发现无端端的报空指针,而旁边又没有小图标,那就不妨往这方面想想。