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