J97799
JY_csdn007
采纳率50%
2016-06-17 06:57 阅读 1.3k
已采纳

请教一个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条回答 默认 最新

  • 已采纳
    w172087242 little_how 2016-06-17 07:01

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

    如果有帮助希望结帖

    点赞 1 评论 复制链接分享

相关推荐