2015-02-22 26 views
8

Sembra che manchi qualcosa: l'iniezione automatica di un'origine dati funziona, ma l'iniezione di DataSourceTransactionManager non riesce.spring-boot: configurazione automatica gestore transazioni

Dipendenze:

<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> 

Codice:

@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); 
    } 
} 

Mi aspettavo che il DataSourceTransactionManagerAutoConfiguration sarebbe preso cura di esso, ma non lo ha fatto. Qualche indizio?

Il campione up è su GitHub: https://github.com/jangalinski/springboot-playground

risposta

8

primavera Boot sta registrando PlatformTransactionManager di fagioli, e si sta cercando di iniettare DataSourceTransactionManager. Se cambierai classe corretta funzionerà immediatamente:

@Autowired 
private PlatformTransactionManager transactionManager; 
+2

Bello, grazie ... avrebbe dovuto chiedere prima. –

+0

PlatformTransactionManager è autoconfigurabile in Spring boot? Dato che abbiamo bisogno di creare bean in Spring framework. – Deepak

Problemi correlati