2014-10-29 85 views
0

我正在嘗試在Groovy中爲Spring Boot編寫一個簡單的Spring Data JPA應用程序。我遵循getting started guide並做了一些基本的轉換,以使其適用於Groovy和Spring Boot CLI。未使用CommandLineRunner自動創建Spring Data JPA存儲庫

我正在同春引導CLI(V1.1.8)代碼:

spring run app.groovy 

這將導致錯誤:

NoSuchBeanDefinitionException: No qualifying bean of type [hello.CustomerRepository] is defined 

有沒有人有一個想法,爲什麼倉庫不是自動創建?我覺得我必須錯過簡單的東西。下面是一個包含代碼的所有的app.groovy文件:如果你給它實際的類(即,不是.groovy作爲腳本)

package hello 

@Grab("spring-boot-starter-data-jpa") 
@Grab("h2") 

import java.util.List 
import javax.persistence.* 
import org.springframework.boot.SpringApplication 
import org.springframework.boot.autoconfigure.EnableAutoConfiguration 
import org.springframework.context.ConfigurableApplicationContext 
import org.springframework.context.annotation.Configuration 
import org.springframework.data.repository.CrudRepository 

@Entity 
class Customer { 
    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    long id 
    String name 

    Customer() {} 
    Customer(String name) { 
     this.name = name 
    } 
} 

interface CustomerRepository extends CrudRepository<Customer, Long> { 
    List<Customer> findByName(String name) 
} 

@Configuration 
@EnableAutoConfiguration 
class Application implements CommandLineRunner { 

    @Autowired 
    ConfigurableApplicationContext context 

    void run(String[] args) { 
     CustomerRepository repository = context.getBean(CustomerRepository.class) 
     repository.save(new Customer("Jack", "Bauer")) 
    } 
} 
+0

你嘗試過加入'@ EnableJpaRepositories' – cfrick 2014-10-29 20:26:10

+0

是的,我曾嘗試加入@EnableJpaRepositories到應用程序類。它沒有改變結果。 – 2014-10-29 20:35:39

回答

1

一個Groovy CLI應用程序只能掃描JPA庫。你可以建立一個jar文件並運行,它應該工作:

$ spring jar app.jar app.groovy 
$ java -jar app.jar 
+0

這個修好了,謝謝! – 2014-10-31 21:22:05

相關問題