idea报错代码:
Caused by: java.lang.IllegalArgumentException: Property 'dataSource' is required
缺失dataSource连接池
检查方法:
可以在JDBC处打一个输出一下连接池,和获取配置文件的属性信息,看一下是否正常
@Value("${jdbc.driver}")
private String drive;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource (){
DruidDataSource dds = new DruidDataSource();
dds.setDriverClassName(drive);
dds.setUrl(url);
dds.setUsername(username);
dds.setPassword(password);
//输出看下是否创建成功
System.out.print(dds);
System.out.println("-----dataSource创建成功...");
System.out.println(username+":"+password);
return dds;
}
正确的输出的结果是:
{
CreateTime:"2022-01-17 13:01:17",
ActiveCount:0,
PoolingCount:0,
CreateCount:0,
DestroyCount:0,
CloseCount:0,
ConnectCount:0,
Connections:[
]
}-----dataSource创建成功...
root:root
如果结果获取不到, 检查SpringConfig配置类
1.是否导入JDBC配置类
2.是否导入JDBC的配置路径
3.看下配置文件的用户名变量是不是写的username,这个名字被系统默认占用,换一下名字再试试
//告诉Spring这是你的配置类
@Configuration
//告诉Spring接管Bean的路径
@ComponentScan("com.xxxx")
//加载properties的路径
@PropertySource("JDBC_Config.properties")
//导入jdbc 和mybatis
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {
}
如果获取到,检查 Mybatis的SQLSessionFactoryBean 中是否往 SQLSessionFactoryBean 对象设置连接池
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(@Autowired DataSource dataSource) throws Exception {
SqlSessionFactoryBean ssfb = new SqlSessionFactoryBean();
//设置连接池
ssfb.setDataSource(dataSource);
//设置javaBean的位置
ssfb.setTypeAliasesPackage("com.xxxx.pojo");
//开启自动驼峰模式
//ssfb.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
System.out.println("sqlSessionFactoryBean创建成功...");
return ssfb;
}