请教一个spring datasource的问题

 import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.PlatformTransactionManager;

@Configuration
public class Ch6Configuration {
    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/spring_ch6");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        return dataSource();
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
        transactionManager.setDataSource(dataSource());
        return transactionManager;
    }

}

 public class Main {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationConfigApplicationContext = new 
                AnnotationConfigApplicationContext(Ch6Configuration.class);
        PlatformTransactionManager transactionManager = annotationConfigApplicationContext
                .getBean(PlatformTransactionManager.class);
        System.out.println(transactionManager != null);
        annotationConfigApplicationContext.close();

    }
}

程序运行后一直出现org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
信息: Loaded JDBC driver: com.mysql.jdbc.Driver

最后就是内存溢出,bean无法创建。。。不知道哪里出问题了

1.你的程序最好try catch,这样能快速定位错误
2.从描述来看可能是你mysql的驱动包没引入,需要引入如:mysql-connector-java-5.1.39.jar这样的jar包
版本不一定与我的一样。
3.return语句有问题,不要return dataSource();这样会死循环,因该return dataSource;

如果有帮助希望结帖