【问题标题】:Spring boot exception for a very simple app一个非常简单的应用程序的 Spring Boot 异常
【发布时间】:2017-09-03 20:39:48
【问题描述】:

我的应用程序有这个。它还没有休眠或 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.HibernateJpaAutoConfiguration”的bean时出错:通过表达不满足的依赖关系构造函数参数 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 的嵌入式数据库驱动程序类。如果您想要一个嵌入式数据库,请在类路径中放置一个受支持的数据库。如果您要从特定配置文件加载数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。

【问题讨论】:

  • 好吧,如果您不想拥有 JPA,请不要将 spring-boot-starter-data-jpa 添加到您的依赖项中。如异常所示,添加它会激活查找数据源的自动配置,因为使用 JPA 时,您需要一个数据源。

标签: java exception spring-boot


【解决方案1】:

当您将 JPA 休眠 jar 放入类路径时。当 Hibernate 在类路径中可用时,选择 Spring Boot AutoConfiguration 来创建 EntityManager。

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

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

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 2013-11-29
    • 2023-03-20
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    相关资源
    最近更新 更多