2015-02-22 16 views
8

Có vẻ như tôi đang thiếu thứ gì đó: Tự động tiêm nguồn dữ liệu hoạt động, nhưng việc tiêm DataSourceTransactionManager không thành công.spring-boot: tự động định cấu hình trình quản lý giao dịch

Dependencies:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.2.1.RELEASE</version> 
</parent> 
<dependencies> 
    <dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-jdbc</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
    </dependency> 
</dependencies> 

Code:

@SpringBootApplication 
public class MainApplication { 

    @Autowired 
    private DataSource dataSource; 

    // this fails 
    @Autowired 
    private DataSourceTransactionManager transactionManager; 

    public static void main(String... args) { 
    SpringApplication.run(MainApplication.class, args); 
    } 
} 

tôi mong đợi rằng DataSourceTransactionManagerAutoConfiguration sẽ chăm sóc nó, nhưng nó thì không. Bất kì manh mối nào?

Mẫu lên là trên github: https://github.com/jangalinski/springboot-playground

Trả lời

8

Xuân Boot được đăng ký PlatformTransactionManager đậu, và bạn đang cố gắng tiêm DataSourceTransactionManager. Nếu bạn sẽ chuyển sang lớp phù hợp, nó sẽ hoạt động ra khỏi hộp:

@Autowired 
private PlatformTransactionManager transactionManager; 
+2

Tốt nhất, cảm ơn ... nên hỏi trước đó. –

+0

PlatformTransactionManager có thể tự động cấu hình trong Spring boot không? Vì chúng ta cần tạo bean trong Spring framework. – Deepak

Các vấn đề liên quan