2013-12-19 1 views
10

@EnableAutoConfigurationを次のスプリングブートアプリケーションに追加すると、entityManagerFactoryが作成されないのはなぜですか? @EnableAutoConfigurationを削除すると問題なく動作します。 誰でもこの現象を解明できますか?@EnableAutoConfigurationを追加すると、「スキャンするJPAパッケージを見つけることができません」というエラーメッセージが表示されるのはなぜですか?

package test.builder; 

import javax.sql.DataSource; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.boot.CommandLineRunner; 
import org.springframework.boot.SpringApplication; 
import org.springframework.context.annotation.AnnotationConfigApplicationContext; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.PropertySource; 
import org.springframework.context.support.AbstractApplicationContext; 
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 
import org.springframework.orm.jpa.JpaTransactionManager; 
import org.springframework.orm.jpa.JpaVendorAdapter; 
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; 
import org.springframework.orm.jpa.vendor.Database; 
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; 
import org.springframework.transaction.PlatformTransactionManager; 

import test.builder.jpa.entity.Builder; 
import test.builder.jpa.repository.BuilderRepository; 

@Configuration 
// @EnableAutoConfiguration 
@EnableJpaRepositories("test.builder") 
@PropertySource("classpath:application.properties") 
public class BootApp implements CommandLineRunner { 

    private static Logger logger = LoggerFactory.getLogger(BootApp.class); 

    @Value("${spring.datasource.driverClassName}") 
    private String databaseDriverClassName; 

    @Value("${spring.datasource.url}") 
    private String datasourceUrl; 

    @Value("${spring.datasource.username}") 
    private String databaseUsername; 

    @Value("${spring.datasource.password}") 
    private String databasePassword; 

    @Bean 
    public static PropertySourcesPlaceholderConfigurer placeHolderConfigurer() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 

    @Bean 
    public DataSource dataSource() { 

     org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource(); 
     ds.setDriverClassName(databaseDriverClassName); 
     ds.setUrl(datasourceUrl); 
     ds.setUsername(databaseUsername); 
     ds.setPassword(databasePassword); 

     return ds; 
    } 

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

     return lef; 
    } 

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

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

    @Override 
    public void run(String... args) { 

     AbstractApplicationContext context = new AnnotationConfigApplicationContext(BootApp.class); 
     BuilderRepository repository = context.getBean(BuilderRepository.class); 
     Builder builder = repository.findOne(10); 

     logger.info("Retrieved ", builder.toString()); 

     context.close(); 
    } 

    public static void main(String[] args) { 

     SpringApplication.run(BootApp.class, args); 

    } 

} 

根本的なエラーが

Unable to find JPA packages to scan, please define a @ComponentScan annotation or disable JpaAutoConfiguration 

ある(スタックトレースを含む)完全な出力は、 -

14:53:50,842 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 
14:53:50,843 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 
14:53:50,991 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 
14:53:50,997 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT] 
14:53:51,017 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
14:53:51,114 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 
14:53:51,114 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT] 
14:53:51,115 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 
14:53:51,117 |-INFO in [email protected] - Registering current configuration as safe fallback point 

    . ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot ::    (v0.5.0.M6) 

14:53:51,849 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 
14:53:51,854 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT] 
14:53:51,854 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property 
14:53:51,855 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to INFO 
14:53:51,856 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT] to Logger[ROOT] 
14:53:51,856 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 
14:53:51,856 |-INFO in [email protected] - Registering current configuration as safe fallback point 
14:53:51.945 INFO o.s.c.a.AnnotationConfigApplicationContext - Refreshing org.spring[email protected]6490832e: startup date [Thu Dec 19 14:53:51 GMT 2013]; root of context hierarchy 
14:53:52.829 INFO o.s.b.f.s.DefaultListableBeanFactory - Overriding bean definition for bean 'transactionManager': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=bootApp; factoryMethodName=transactionManager; initMethodName=null; destroyMethodName=(inferred); defined in class test.builder.BootApp] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; factoryMethodName=transactionManager; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]] 
14:53:52.830 INFO o.s.b.f.s.DefaultListableBeanFactory - Overriding bean definition for bean 'entityManagerFactory': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=bootApp; factoryMethodName=entityManagerFactory; initMethodName=null; destroyMethodName=(inferred); defined in class test.builder.BootApp] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; factoryMethodName=entityManagerFactory; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]] 
14:53:52.830 INFO o.s.b.f.s.DefaultListableBeanFactory - Overriding bean definition for bean 'jpaVendorAdapter': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=bootApp; factoryMethodName=jpaVendorAdapter; initMethodName=null; destroyMethodName=(inferred); defined in class test.builder.BootApp] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; factoryMethodName=jpaVendorAdapter; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]] 
Exception in thread "main" 14:53:53.382 INFO o.s.b.a.AutoConfigurationReportLoggingInitializer$AutoConfigurationReportLogger - 


========================= 
AUTO-CONFIGURATION REPORT 
========================= 


Positive matches: 
----------------- 

    MessageSourceAutoConfiguration 
     - @ConditionalOnMissingBean (types: org.springframework.context.MessageSource; SearchStrategy: all) found no beans (OnBeanCondition) 

    AopAutoConfiguration 
     - @ConditionalOnClass classes found: org.springframework.context.annotation.EnableAspectJAutoProxy,org.aspectj.lang.annotation.Aspect,org.aspectj.lang.reflect.Advice (OnClassCondition) 
     - SpEL expression on org.springframework.boot.autoconfigure.aop.AopAutoConfiguration: #{true} (OnExpressionCondition) 
     - @ConditionalOnClass classes found: org.springframework.context.annotation.EnableAspectJAutoProxy,org.aspectj.lang.annotation.Aspect,org.aspectj.lang.reflect.Advice (OnClassCondition) 
     - SpEL expression on org.springframework.boot.autoconfigure.aop.AopAutoConfiguration: #{true} (OnExpressionCondition) 

    AopAutoConfiguration.JdkDynamicAutoProxyConfiguration 
     - SpEL expression on org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$JdkDynamicAutoProxyConfiguration: #{!false} (OnExpressionCondition) 
     - SpEL expression on org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$JdkDynamicAutoProxyConfiguration: #{!false} (OnExpressionCondition) 

    DataSourceAutoConfiguration 
     - @ConditionalOnClass classes found: org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType (OnClassCondition) 
     - @ConditionalOnClass classes found: org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType (OnClassCondition) 

    DataSourceAutoConfiguration.JdbcTemplateConfiguration 
     - existing auto database detected (DataSourceAutoConfiguration.DatabaseCondition) 
     - existing auto database detected (DataSourceAutoConfiguration.DatabaseCondition) 

    DataSourceAutoConfiguration.JdbcTemplateConfiguration#jdbcTemplate 
     - @ConditionalOnMissingBean (types: org.springframework.jdbc.core.JdbcOperations; SearchStrategy: all) found no beans (OnBeanCondition) 

    DataSourceAutoConfiguration.JdbcTemplateConfiguration#namedParameterJdbcTemplate 
     - @ConditionalOnMissingBean (types: org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; SearchStrategy: all) found no beans (OnBeanCondition) 

    DataSourceTransactionManagerAutoConfiguration 
     - @ConditionalOnClass classes found: org.springframework.jdbc.core.JdbcTemplate,org.springframework.transaction.PlatformTransactionManager (OnClassCondition) 
     - @ConditionalOnClass classes found: org.springframework.jdbc.core.JdbcTemplate,org.springframework.transaction.PlatformTransactionManager (OnClassCondition) 

    HibernateJpaAutoConfiguration 
     - @ConditionalOnClass classes found: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,org.springframework.transaction.annotation.EnableTransactionManagement,javax.persistence.EntityManager,org.hibernate.ejb.HibernateEntityManager (OnClassCondition) 
     - @ConditionalOnClass classes found: org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,org.springframework.transaction.annotation.EnableTransactionManagement,javax.persistence.EntityManager,org.hibernate.ejb.HibernateEntityManager (OnClassCondition) 
     - @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) found the following [dataSource] (OnBeanCondition) 

    ServerPropertiesAutoConfiguration#serverProperties 
     - @ConditionalOnMissingBean (types: org.springframework.boot.context.embedded.properties.ServerProperties; SearchStrategy: all) found no beans (OnBeanCondition) 


Negative matches: 
----------------- 

    PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer 
     - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) found the following [placeHolderConfigurer] (OnBeanCondition) 

    RabbitAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.springframework.amqp.rabbit.core.RabbitTemplate,com.rabbitmq.client.Channel (OnClassCondition) 

    AopAutoConfiguration.CglibAutoProxyConfiguration 
     - SpEL expression on org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$CglibAutoProxyConfiguration: #{false} (OnExpressionCondition) 

    BatchAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.springframework.batch.core.launch.JobLauncher (OnClassCondition) 

    JpaRepositoriesAutoConfiguration 
     - @ConditionalOnClass classes found: org.springframework.data.jpa.repository.JpaRepository (OnClassCondition) 
     - @ConditionalOnMissingBean (types: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; SearchStrategy: all) found the following [&builderRepository] (OnBeanCondition) 

    JpaRepositoriesAutoConfiguration.JpaWebConfiguration 
     - web application classes not found (OnWebApplicationCondition) 

    MongoRepositoriesAutoConfiguration 
     - required @ConditionalOnClass classes not found: com.mongodb.Mongo,org.springframework.data.mongodb.repository.MongoRepository (OnClassCondition) 

    DataSourceAutoConfiguration.DbcpConfiguration 
     - tomcat DataSource (DataSourceAutoConfiguration.BasicDatabaseCondition) 

    DataSourceAutoConfiguration.EmbeddedConfiguration 
     - existing non-embedded database detected (DataSourceAutoConfiguration.EmbeddedDatabaseCondition) 

    DataSourceAutoConfiguration.TomcatConfiguration 
     - found database driver com.microsoft.sqlserver.jdbc.SQLServerDriver (DataSourceAutoConfiguration.TomcatDatabaseCondition) 
     - found database driver com.microsoft.sqlserver.jdbc.SQLServerDriver (DataSourceAutoConfiguration.TomcatDatabaseCondition) 
     - @ConditionalOnMissingBean (types: javax.sql.DataSource; SearchStrategy: all) found the following [dataSource] (OnBeanCondition) 

    DataSourceTransactionManagerAutoConfiguration#transactionManager 
     - @ConditionalOnMissingBean (names: transactionManager; SearchStrategy: all) found the following [transactionManager] (OnBeanCondition) 

    JmsTemplateAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.springframework.jms.core.JmsTemplate,javax.jms.ConnectionFactory (OnClassCondition) 

    DeviceResolverAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.springframework.mobile.device.DeviceResolverHandlerInterceptor,org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver (OnClassCondition) 

    JpaBaseConfiguration.JpaWebConfiguration 
     - web application classes not found (OnWebApplicationCondition) 

    ReactorAutoConfiguration 
     - required @ConditionalOnClass classes not found: reactor.spring.context.config.EnableReactor (OnClassCondition) 

    ThymeleafAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.thymeleaf.spring3.SpringTemplateEngine (OnClassCondition) 

    DispatcherServletAutoConfiguration 
     - web application classes not found (OnWebApplicationCondition) 

    EmbeddedServletContainerAutoConfiguration 
     - web application classes not found (OnWebApplicationCondition) 

    MultipartAutoConfiguration 
     - required @ConditionalOnClass classes not found: javax.servlet.Servlet,org.springframework.web.multipart.support.StandardServletMultipartResolver (OnClassCondition) 

    WebMvcAutoConfiguration 
     - web application classes not found (OnWebApplicationCondition) 

    WebSocketAutoConfiguration 
     - required @ConditionalOnClass classes not found: org.springframework.web.socket.WebSocketHandler (OnClassCondition) 



org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory()] threw exception; nested exception is java.lang.IllegalArgumentException: Unable to find JPA packages to scan, please define a @ComponentScan annotation or disable JpaAutoConfiguration 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:584) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1089) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:984) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:300) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) 
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:973) 
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:750) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:552) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:293) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:749) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:738) 
    at test.builder.BootApp.main(BootApp.java:104) 
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory()] threw exception; nested exception is java.lang.IllegalArgumentException: Unable to find JPA packages to scan, please define a @ComponentScan annotation or disable JpaAutoConfiguration 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:188) 
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:573) 
    ... 16 more 
Caused by: java.lang.IllegalArgumentException: Unable to find JPA packages to scan, please define a @ComponentScan annotation or disable JpaAutoConfiguration 
    at org.springframework.util.Assert.notEmpty(Assert.java:268) 
    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.getPackagesToScan(JpaBaseConfiguration.java:109) 
    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory(JpaBaseConfiguration.java:76) 
    at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration$$EnhancerByCGLIB$$7973d544.CGLIB$entityManagerFactory$4(<generated>) 
    at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration$$EnhancerByCGLIB$$7973d544$$FastClassByCGLIB$$360fed5a.invoke(<generated>) 
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) 
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:334) 
    at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration$$EnhancerByCGLIB$$7973d544.entityManagerFactory(<generated>) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:166) 
    ... 17 more 

ポンポンエキス -

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>0.5.0.M6</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat</groupId> 
     <artifactId>tomcat-jdbc</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.microsoft.sqlserver</groupId> 
     <artifactId>sqljdbc4</artifactId> 
     <version>4.0</version> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-core</artifactId> 
     <version>1.0.13</version> 
    </dependency> 
    <dependency> 
     <groupId>ch.qos.logback</groupId> 
     <artifactId>logback-classic</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
    </dependency> 
</dependencies> 

理解任意のアドバイス。

+0

あなた 'ラン()'メソッドは、独自の 'ApplicationContext'を作成(および任意の春のブート機能を使用していない)されます。なぜあなたはそれをしたいのですか? –

+0

私は裸の骨で始まりました。 '@ ComponentScan'が見つからないため、私はより明示的な設定を追加して動作させようとしました。私は、コンポーネントスキャンの注釈を持たない、または必要としないdata-jpa開始サンプルを使用していました。とにかく、あなたの答えが私の問題を解決したので、私は今、春のブートパスに戻ります。そしてそれは非常にきちんとしています。修正していただきありがとうございます。 – KapudanPasha

答えて

15

これは、Spring Bootがリポジトリを作成したいと思っていて、その場所を教えていないからです。あなたはそれを行うには@ComponentScanが必要です(私はエラーメッセージが少なくとも最近のバージョンではそうだと思います)。あなたのアプリケーションは、それが必要ではない多くのことをやっています。これは動作するはずです:

@Configuration 
@EnableAutoConfiguration 
@ComponentScan("test.builder") 
public class BootApp implements CommandLineRunner { 

    private static Logger logger = LoggerFactory.getLogger(BootApp.class); 

    @Autowired 
    private BuilderRepository repository; 

    @Override 
    public void run(String... args) { 
     Builder builder = repository.findOne(10);  
     logger.info("Retrieved ", builder.toString()); 
    } 

    public static void main(String[] args) { 

     SpringApplication.run(BootApp.class, args); 

    } 

} 
6

@Repositoryインターフェイスはどこですか?

スプリングデータは、さまざまなフレーバーの@Repositoryインターフェイスの実装を作成できます。 @Repositoriesが@EnableAutoConfigurationクラスの同じパッケージ(またはサブパッケージ)に含まれている限り、Spring Bootはあなたのためのすべてを処理します。

http://projects.spring.io/spring-boot/docs/docs/howto.html

+0

@Repositoryでアノテートされたクラスが実装Beanを見つけられなかった理由を見つけようとしていましたが、Spring Bootアプリケーションクラスのサブパッケージではないことが分かりました。ありがとう –

関連する問題