zl程序教程

您现在的位置是:首页 >  后端

当前栏目

创建springBoot项目及启动报错遇到的问题解决:Failed to configure a DataSource: 'url' attribute is not specified and no embedd

SpringBootFailed项目 解决 报错 创建 to 启动
2023-09-11 14:19:55 时间

  IDEA 如何快速创建 Springboot 项目,请查看这篇:https://blog.csdn.net/sunnyzyq/article/details/108666480

一、启动报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedd

    ***************************  
    APPLICATION FAILED TO START  
    ***************************  
    Description:  
    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.  
    Reason: Failed to determine a suitable driver class  

    Action:  
      
    Consider the following:  
        If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.  
        If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).  

  翻译就是:无法配置DataSource:未指定'url'属性,也无法配置嵌入数据源。

  很明显,就是你在应用中没有配置datasource的一些相关属性,例如:地址值啊,数据库驱动啊,用户名啊,密码啊,

  都知道,SpringBoot的最大一个好处就是自动配置:所以我们只是需要给他配置文件的值,它就会自动配置。配置在application.properties文件中。

  所以有2个解决方案:

1、第1种,在application.yml里配置上数据库的相关信息,比如

spring:
  application:
    name: openGauss Exam
  datasource:
    url: jdbc:postgresql://***
    driver-class-name: org.postgresql.Driver
    username: **
    password: ***
    hikari:
      login-timeout: 30
      connection-timeout: 10000
      idle-timeout: 600000
      max-lifetime: 1800000
      connection-test-query: select 1

2、第2种,也可以不配置,但是你需要声明一下,启动类头部声明就可以

  注解这样写:@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})
public class ExamApplication {
    public static void main(String[] args) {
        SpringApplication.run(ExamApplication.class, args);
    }
}

二、非法反射,报错信息

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (file:/C:/Users/%e5%85%b3%e6%96%87%e5%b3%b0/.m2/repository/org/springframework/spring-core/5.0.6.RELEASE/spring-core-5.0.6.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

  警告信息,暂时没影响

三、idea运行springBoot项目报错 Process finished with exit code 0

  Deleting provided scope of spring-boot-starter-tomcat dependency helps me.

  在pom.xml中添加,然后导入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

四、alt + enter 导入类

  在使用idea开发java项目的时候,经常需要导入jdk或者是第三方类库的类,如果是自己手工导入的话,非常麻烦,效率很低,下面来介绍下如何设置idea,就可以实现自动导入

  设置自动导入的方式,来自动批量导入,打开idea的settings设置对话框

  在左上角的输入框中输入auto import关键字搜索,找到Editor>General>Auto Import

  勾选上add unambiguous imports on the fly选项,点击确认,关闭对话框

  在设置自动导入的窗口,还有一个Optimize imports on the fly选项,也可以勾选上,可以帮助我们自动去除不需要的导入类。