问题:一直报dataSource找不到
No bean named ‘dataSource’ available
我是通过导入jdbc或者mybatis依赖解决的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
//或
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
测试的其他注意点:
(1)
(2)
编写完配置文件要知道数据源配置是否正确,若是通过编写sql来测就挺麻烦的,可以在测试类中获取datasouce来测试
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootTest(classes = App.class)
public class AppTest
{
@Autowired
DataSource dataSource;
@Test
public void testIsConnect() throws SQLException {
System.out.println(dataSource.getClass());
Connection connection = dataSource.getConnection();
System.out.println(connection);
connection.close();
}
/*
输出结果:
class com.zaxxer.hikari.HikariDataSource
HikariProxyConnection@1842881670 wrapping com.mysql.cj.jdbc.ConnectionImpl@56078cea
*/
}
也可用下面方式,若数据源配置出现问题,启动程序后会终止(该方法参考网络,忘记文章连接了)
@Component
public class ApplicationContextHelper implements ApplicationContextAware {
private static ApplicationContext context;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
try {
context = applicationContext;
// ===== 在项目初始化bean后检验数据库连接是否
DataSource dataSource = (DataSource) context.getBean("dataSource");
dataSource.getConnection().close();
} catch (Exception e) {
e.printStackTrace();
// ===== 当检测数据库连接失败时, 停止项目启动
System.exit(-1);
}
}
public ApplicationContext getApplicationContext() {
return context;
}
}