首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot with Hibernate应用程序启动失败

Spring Boot with Hibernate应用程序启动失败
EN

Stack Overflow用户
提问于 2020-11-11 08:29:59
回答 4查看 471关注 0票数 0

当我启动我的Spring Boot应用程序时,我得到了:

2020-11-11 03:02:24.333 WARN 20648 - main bean :上下文初始化过程中遇到异常-取消刷新尝试: org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration':的bean时出错,通过构造函数参数0表示的依赖项不满足;嵌套异常是org.springframework.beans.factory.BeanCreationException:在通过工厂方法实例化类路径资源org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class: ConfigServletWebServerApplicationContext中定义的名为'dataSource‘的Bean时出错;嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化Tomcat2020-11-11 03:02:24.335信息20648 - main o.apache.catalina.core.StandardService :停止服务Tomcat2020-11-11 03:02:02:24.486信息20648 - main ConditionEvaluationReportLoggingListener :停止服务Tomcat 2020-11-11 03:02:02:24.486信息2020-11-11 03:02:24.486信息2020-11-11 03:02:02:24.486信息2020-11-11 03:02:24.486信息2020-11-11 03:02:02:24.486信息2020-11-11 03:02:24.486信息2020-11-11 03:02:02:24.486信息2020-11-11 03:02:02:24.486信息2020-11-11 03:02:02:24.486信息2020-11-11 03:02:02:24.486信息2020-main ConditionEvaluationReportLoggingListener:

启动ApplicationContext时出错。要显示条件报告,请在启用“debug”的情况下重新运行应用程序。20648 -11-11 03:02:24.489错误2020- main o.s.b.d.LoggingFailureAnalysisReporter:

应用程序启动失败

描述:

无法配置url:未指定“”datasource“”属性,并且无法配置嵌入的数据源。“”

原因:无法确定合适的驱动程序类

操作:

考虑以下几点:如果您需要一个嵌入式数据库(H2、HSQL或Derby),请将其放在类路径中。如果您有要从特定配置文件加载的数据库设置,则可能需要激活它(当前没有活动的配置文件)。

我的pom.xml:

代码语言:javascript
复制
   <?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>groupId</groupId>
    <artifactId>Netcracker-teamproject-2020</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.3.5.RELEASE</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.3.5.RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>2.3.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.5.RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>9.1.0.jre11-preview</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>9.0.10</version>
        </dependency>

        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.23.1-GA</version>
        </dependency>

    </dependencies>

</project>

你能告诉我该怎么做才能解决这个问题吗?

EN

回答 4

Stack Overflow用户

发布于 2020-11-11 12:14:11

只需使用application.properties文件即可设置数据源url

代码语言:javascript
复制
spring:
    datasource:
        url: 'jdbc:mssql://localhost:5432/dbname'
        username: username
        password: password 
票数 1
EN

Stack Overflow用户

发布于 2020-11-11 18:25:50

我最终解决了这个问题,只需添加

代码语言:javascript
复制
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

到Spring Boot application.properties

票数 1
EN

Stack Overflow用户

发布于 2020-11-11 08:31:16

我的配置文件:

代码语言:javascript
复制
package com.projectparty.config;

import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@EnableTransactionManagement
public class HibernateConfig {

    @Bean
    public DataSource dataSource() {
        return DataSourceBuilder.create()
                .driverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
                .url("jdbc:sqlserver://127.0.0.1:51264")
                .username("admin")
                .password("admin")
                .build();
    }


    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setHibernateProperties(hibernateProperties());

        return sessionFactory;
    }

    @Bean
    public PlatformTransactionManager hibernateTransactionManager() {
        HibernateTransactionManager transactionManager
                = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());

        return transactionManager;
    }

    private Properties hibernateProperties() {
        Properties hibernateProperties = new Properties();
        hibernateProperties.setProperty(
                "hibernate.hbm2ddl.auto", "update");
        hibernateProperties.setProperty(
                "hibernate.dialect", "org.hibernate.SQLServerDialect");

        return hibernateProperties;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64778782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档