问题:
DataSource自动注入为空
测试代码
解决方案: 在测试类上加上@RunWith注解即可
测试代码
package com.zkw;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootTest
public class Springboot06JdbcApplicationTests {
@Autowired
DataSource dataSource;
@Test
public void contextLoads() throws SQLException {
System.err.println(dataSource.getClass());
Connection connection = dataSource.getConnection();
System.err.println(connection);
connection.close();
}
}
可能是没有读取到.yaml文件
解决方案: 在测试类上加上@RunWith注解即可
@RunWith就是一个运行器
@RunWith(SpringRunner.class)
注解的意义在于Test测试类要使用注入的bean,比如@Autowired注入的bean,
有了@RunWith(SpringRunner.class)这些bean才能实例化到spring容器中,自动注入才能生效,
不然直接一个NullPointerExecption
@RunWith(SpringRunner.class)
改变后的代码