2017-04-08 71 views
0

我的应用程序有这个。它还没有休眠或jpa的东西。我只加在库中的pom.xml:一个非常简单的应用程序的春季启动例外

@SpringBootApplication 
    @ComponentScan("com.ma.vegshopping") 
    public class VegShoppingApplication { 

     public static void main(String[] args) { 
      SpringApplication.run(VegShoppingApplication.class, args); 
     } 
    } 

的pom.xml:

  <?xml version="1.0" encoding="UTF-8"?> 
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
       <modelVersion>4.0.0</modelVersion> 

       <groupId>com.ma</groupId> 
       <artifactId>VegShopping</artifactId> 
       <version>0.0.1-SNAPSHOT</version> 
       <packaging>jar</packaging> 

       <name>VegShopping</name> 
       <description>vegetable shopping list</description> 

       <parent> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-parent</artifactId> 
        <version>1.5.2.RELEASE</version> 
        <relativePath/> <!-- lookup parent from repository --> 
       </parent> 

       <properties> 
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
        <java.version>1.8</java.version> 
       </properties> 

       <dependencies> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-actuator</artifactId> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-data-jpa</artifactId> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-security</artifactId> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-social-facebook</artifactId> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-web</artifactId> 
        </dependency> 

        <dependency> 
         <groupId>mysql</groupId> 
         <artifactId>mysql-connector-java</artifactId> 
         <scope>runtime</scope> 
        </dependency> 
        <dependency> 
         <groupId>org.springframework.boot</groupId> 
         <artifactId>spring-boot-starter-test</artifactId> 
         <scope>test</scope> 
        </dependency> 
       </dependencies> 

       <build> 
        <plugins> 
         <plugin> 
          <groupId>org.springframework.boot</groupId> 
          <artifactId>spring-boot-maven-plugin</artifactId> 
         </plugin> 
        </plugins> 
       </build> 


      </project> 

当尝试启动应用程序,我得到以下异常:

ationConfigEmbeddedWebApplicationContext:过程中遇到异常上下文初始化 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:使用名称'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfigur创建bean时出错ation':通过构造函数参数0表示的不满意依赖;嵌套异常是org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration $ Tomcat.class]中定义名称为'dataSource'的Bean时出错:通过工厂方法实现的Bean失败;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.apache.tomcat.jdbc.pool.DataSource]:工厂方法'dataSource'抛出异常;嵌套异常是org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException:无法确定数据库类型为NONE的嵌入式数据库驱动程序类。如果你想要一个嵌入式数据库,请在类路径中放一个支持的数据库。如果您要从特定配置文件加载数据库设置,则可能需要激活它(没有配置文件当前处于活动状态)。

+0

那么,如果你不想拥有JPA,不要将spring-boot-starter-data-jpa添加到你的依赖关系中。正如例外情况所示,添加它会激活自动配置查找数据源,因为在使用JPA时,您需要一个数据源。 –

回答

1

当你把JPA hibernate的jar包带入classpath。当Hibernate在类路径中可用时Spring Boot AutoConfiguration被挑选用于创建EntityManager。

这是Spring引导的默认行为。 由于您没有任何Hibernate数据源,因此启动失败。

尝试通过在application.properties/yml文件中提供属性来创建数据源。 如果你不想使用休眠或jpa然后从你的pom.xml中删除jpa starter

相关问题