只需关注Spring Guides http://spring.io/guides#gs,我就gs-rest-service
和gs-accessing-data-jpa
了。现在我想将它们组合在一个应用程序中,这就像需要更多地理解新的org.springframework.boot.SpringApplication
一样。
在gs-rest-service
配置中看起来是电子邮件,几乎不存在
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
gs-accessing-data-jpa
更像是基于Spring XML JavaConfig的应用程序。
@Configuration
@EnableJpaRepositories
public class CopyOfApplication {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder().setType(H2).build();
}
// 2 other beans...
@Bean
public PlatformTransactionManager transactionManager() {
return new JpaTransactionManager();
}
public static void main(String[] args) {
AbstractApplicationContext context = new AnnotationConfigApplicationContext(CopyOfApplication.class);
CustomerRepository repository = context.getBean(CustomerRepository.class);
//...
}
}
如何合并?
这是否意味着我现在需要在更详细的级别上重新编写SpringApplication.run
?
答案 0 :(得分:2)
在Spring Boot应用程序中,只需添加JPA示例中的依赖项(您尚未拥有的依赖项。
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:0.5.0.M7")
compile("org.springframework:spring-orm:4.0.0.RC1")
compile("org.springframework.data:spring-data-jpa:1.4.1.RELEASE")
compile("org.hibernate:hibernate-entitymanager:4.2.1.Final")
compile("com.h2database:h2:1.3.172")
testCompile("junit:junit:4.11")
}
或者代之以你也可以将spring boot starter project用于Spring Data JPA。在这种情况下,依赖关系将如下所示。
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:0.5.0.M7")
compile("org.springframework.boot:spring-boot-starter-data-jpa:0.5.0.M7")
compile("com.h2database:h2:1.3.172")
testCompile("junit:junit:4.11")
}
这将引入所有必需的依赖项。
接下来将CustomerRepository
复制到Spring Boot应用程序。这基本上应该是你需要的一切。 Spring Boot自动配置现在可以检测Spring Data JPA和JPA,并将为你启动hibernate,spring数据。
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
ApplicationContext context= SpringApplication.run(Application.class, args);
CustomerRepository repository = context.getBean(CustomerRepository.class);
//...
}
}