技术标签: spring boot 工具 intellij-idea 数据库
springboot的出现,让项目搭建变得更方便快捷,同时简化掉很多的样板化配置代码,提高开发效率。
通过idea生成springboot项目,启动报错:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
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配置缺失导致,但是新生成的项目并没有使用到jdbc,为什么会报出这个问题呢?
其实这就是spring boot最核心的内容:自动配置
由于在生成项目的过程中勾选了mybatis以及mysql,所以pom中引入myBatis的jar包:
spring boot就会默认加载
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类, 在该类中我们可以看到加载了datasource的相关配置
知道问题的原因后,解决方法有两种:
1、配置正确的数据源信息,在application.yml中增加如下内容:
启动项目,成功。
2、在看SpringBootApplication源码的时候发现,其实是有“exclude”属性的,那我们是否可以通过该属性指定排除加载类呢?
答案是肯定的,如下所示:
@SpringBootApplication(exclude={
DataSourceAutoConfiguration.class})
或者
@SpringBootApplication(exclude={
DruidDataSourceAutoConfigure.class})
取决于具体的数据源,也可以通过逗号分割,都填上:
@SpringBootApplication(exclude={
DruidDataSourceAutoConfigure.class, DataSourceAutoConfiguration.class})
服务启动成功。
前面我们通过exclude语法强制排除掉某个依赖,但是毕竟涉及到代码了,不太友好,需要重新编码,对于spring cloud的很多模块来说,可以再配置文件中去掉某个模块,以nacos为例:
spring:
application:
name: xxx
cloud:
nacos:
discovery:
enabled: true '默认值为true,可不填'
server-addr: 127.0.0.1:8848
只要引入了spring-cloud-starter-alibaba-nacos-discovery-2.2.5.RELEASE.jar,即使不配置nacos信息:
spring:
application:
name: xxx
cloud:
也会默认去127.0.0.1:8848寻找nacos服务器,此时可以通过enabled=false来排除nacos模块,不用重新编码。
或者你可以配置成:
@SpringBootApplication(exclude={
NacosDiscoveryAutoConfiguration.class})
一般某个模块都有一个AutoConfiguration,查看其源码:
@ConditionalOnDiscoveryEnabled
@ConditionalOnNacosDiscoveryEnabled
public class NacosDiscoveryAutoConfiguration {
@ConditionalOnDiscoveryEnabled或@ConditionalOnNacosDiscoveryEnabled分别对应前提条件:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@ConditionalOnProperty(value = "spring.cloud.discovery.enabled", matchIfMissing = true)
public @interface ConditionalOnDiscoveryEnabled {
配置项 @ConditionalOnProperty(value = “spring.cloud.discovery.enabled
”, matchIfMissing = true) 就是相应的前提条件
文章浏览阅读2.9w次,点赞19次,收藏50次。CentOS8 与 CentOS7 的区别。_centos 8
文章浏览阅读691次。1、P vs NP vs NP Hard vs NP Complete按照时间复杂度将问题分类 ,p是常数多项式复杂度 O(p^n) :不可以解决的问题,归类于NP Hard/Np Complete1、对于小型的问题,仍然可以采用NP: 可以在多项式复杂度内可以verify的,给定一个解,判断这个解是不是想要的。评估解的过程只需要多项式复杂度,是个判断过程。2、approximate algorithm:不保证获得精确的解- 提出近似算法- 指出时间复杂度多少- 给出近似算法最后给出_nlp知识库问答判断输入内容是否在知识库中
文章浏览阅读235次。#使用HTTPD做内部访问转向 1.添加二级域名解析,并能成功ping通 2.安装httpd服务 yum install httpdyum install httpd-devel.x86_64 3.修改httpd的配置文件 cd /etc/httpd/confvim http..._httpd内部访问的例子
文章浏览阅读1w次,点赞19次,收藏64次。距离跨年还有一个半月啦!今天分享用python实现一场烟花秀!话不多说。
文章浏览阅读9.8k次,点赞8次,收藏48次。图像锐化的目的是增强图像的灰度跳变部分,使模糊的图像变得清晰。图像锐化也称为高通滤波,通过和增强高频,衰减和抑制低频。图像锐化常用于电子印刷、医学成像和工业检测。Sobel 算子是一种离散的微分算子,是高斯平滑和微分求导的联合运算,抗噪声能力强。Sobel 梯度算子很容易通过卷积操作 cv.filter2D 实现,OpenCV 也提供了函数 cv.Sobel 实现 Sobel 梯度算子。_opencv sobel算子进行图像锐化
文章浏览阅读4.1k次,点赞4次,收藏10次。到这里ffmpeg的配置就完成了。我们调用命令行(windows+R输入cmd)输入“ffmpeg –version”,如果出现以下结果则说明配置成功。记得点下方的确定,再关闭当前窗口再点确定,这样才能保存,千万记得不能点击取消。选择新建,把刚刚复制的bin路径粘贴进去,点击确定。_windows安装ffmpeg
文章浏览阅读2.4w次,点赞38次,收藏345次。一、运动检测1.1 检测思路目标跟踪是对摄像头视频中的移动目标进行定位的过程。实时目标跟踪是许多计算机视觉应用的重要任务,如监控、基于感知的用户界面、增强现实、基于对象的视频压缩以及辅助驾驶等。好久之前做过一次人脸检测,里面涉及到了目标跟踪。这次实现一般的运动物体检测,关于实现视频目标跟踪的方法有很多,当跟踪所有移动目标时,帧之间的差异会变的有用;当跟踪视频中移动的手时,基于皮肤颜色的均值..._python 目标 跟踪
文章浏览阅读1k次,点赞3次,收藏3次。在这篇文章开始前,先分享一个惨痛的经历,就因为在虚幻四的源码中加了两句注释,项目的编译就走向了拥有3000+ Errors的不归路 T T,这是啥原理啊。这次我们要实现的功能是角色的冲刺奔跑,操作就是点击shift后角色的移动速度会增加。这个能力的实现应该是挺简单的,但是我会扩展一部分的GAS源码,深入一下GAS的Attribute,希望能够帮助到一部分读者。有问题也希望大家可以在评论或者私信告诉我。接下来进入正题,首先还是讲解一下加速跑的实现过程:shift点击后activiate加速跑技能。加_getgameplayattributevaluechangedelegate
文章浏览阅读3.4k次,点赞13次,收藏48次。NachOS线程的描述和优先级1.实验目的(1)通过阅读相关源码,掌握NachOS运行原理和编译方法;(2)完善NachOS下线程描述的内容。2.实验内容(1)为NachOS线程添加线程ID,并设置系统最大线程数;(2)为NachOS线程调度添加优先级,为实现基于优先级的调度做准备。3.实验方法(实验步骤)(1)理解NachOS线程的运行与调度原理,找到需要修改的代码(注:以下所有修改代码的部分,均是由vim修改完成);(2)对thread.h进行修改:在头文件处定义线程最大数MAX_SI_nachos线程调度调度时,线程的产生和调度须同时进行,并且要构建它们的线程家族树。
文章浏览阅读2.1k次。如果您最初创建项目时(或别人的项目)带有ESlint代码规范校验,本文为您带来如何一行代码进行关闭。_非vscode eslint
文章浏览阅读644次,点赞2次,收藏5次。MVC和分页第一节 MVC模式简介1.1 MVC概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种设计模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),即为MVC。它是一种软件设计的典范,最早为Trygve Reenskaug提出,为施乐帕罗奥多研究中心(Xerox PARC)的Sma..._mvc用vue分页
文章浏览阅读1.4k次。操作系统:CentOS 7Hive版本:2.3.6JDK版本:1.8Mysql版本:5.7安装前准备保证 hadoop 正常运行保证 Mysql 正常运行确保JDK 正常安装yum install java-1.8.0-openjdk创建hive数据库并为其授权在msyql数据库中创建hive的元数据库create database hive;..._centos7.5安装hive