簡體   English   中英

具有Spring Data JPA的Spring MVC

[英]Spring MVC with Spring Data JPA

以下教程( Spring Data JPA教程 )說明了如何使用Spring Data JPA在關系數據庫中存儲和檢索數據的應用程序。

我目前在將其與SpringMVC配合使用時遇到一些麻煩。 我有一個非常簡單的MVC應用程序,正在嘗試將Spring Data JPA集成到其中。

不幸的是,以上教程對我來說不是很有幫助,因為它沒有解釋如何將Spring Data與MVC一起使用。

本教程介紹了如何設置Application類,在該類中配置了所有必需的bean,然后使用一個簡單的main方法使用示例存儲庫之一。

我的問題是:如何以與教程中相同的方式配置MVC應用程序,以便可以開始在MVC中使用Spring Data?

這是Application類的代碼,僅供參考:

@Configuration
@EnableJpaRepositories
public class Application {

    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder().setType(H2).build();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter) {
        LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
        lef.setDataSource(dataSource);
        lef.setJpaVendorAdapter(jpaVendorAdapter);
        lef.setPackagesToScan("hello");
        return lef;
    }

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
        hibernateJpaVendorAdapter.setShowSql(false);
        hibernateJpaVendorAdapter.setGenerateDdl(true);
        hibernateJpaVendorAdapter.setDatabase(Database.H2);
        return hibernateJpaVendorAdapter;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new JpaTransactionManager();
    }


    public static void main(String[] args) {
        AbstractApplicationContext context = new AnnotationConfigApplicationContext(Application.class);
        CustomerRepository repository = context.getBean(CustomerRepository.class);

        // save a couple of customers
        repository.save(new Customer("Jack", "Bauer"));
        repository.save(new Customer("Chloe", "O'Brian"));
        repository.save(new Customer("Kim", "Bauer"));
        repository.save(new Customer("David", "Palmer"));
        repository.save(new Customer("Michelle", "Dessler"));

        // fetch all customers
        Iterable<Customer> customers = repository.findAll();
        System.out.println("Customers found with findAll():");
        System.out.println("-------------------------------");
        for (Customer customer : customers) {
            System.out.println(customer);
        }
        System.out.println();

        // fetch an individual customer by ID
        Customer customer = repository.findOne(1L);
        System.out.println("Customer found with findOne(1L):");
        System.out.println("--------------------------------");
        System.out.println(customer);
        System.out.println();

        // fetch customers by last name
        List<Customer> bauers = repository.findByLastName("Bauer");
        System.out.println("Customer found with findByLastName('Bauer'):");
        System.out.println("--------------------------------------------");
        for (Customer bauer : bauers) {
            System.out.println(bauer);
        }

        context.close();
    }

}

我個人是從Spring開始的,首先在github.com上下載了帶有內置配置文件的應用程序:
下載例如petclinic項目 (選擇下載.zip)
然后,如果您使用Spring Tool Suite:文件>導入> Maven>現有Maven項目>瀏覽> ...
因此,您不必擔心.xml配置文件,它們會同時安裝。

我正在做您嘗試做的事情。 從小型入門教程開始,然后從那里開始。 這是合並mvc和數據后我的主要方法的樣子:

public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(Application.class,args);
PostRepository repository = context.getBean(PostRepository.class);
}

(這里的存儲庫稱為PostRepository,因為我正在創建博客應用,並且將“ Post”對象存儲在數據庫中)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM