1、启动springboot时url找不到错误?
报错信息:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
原因分析:url从哪里来的?
配置文件中引入的mybatisplus的依赖
为什么启动时会出现?
@SpringBootApplication ——> @EnableAutoConfiguration
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
解决办法:
1、修改注解
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
2、修改yml配置
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
2、多模块配置文件的兼容性问题
目的:一次配置配置文件,使得其他模块可以使用
原理:
springboot优先读取applicaiton.yml文件,active读取其它文件的后缀 appliaction-dev.yml
2.1 domain模块资源文件
application-xxxx.yml
spring:
datasource:
druid:
url: jdbc:mysql://192.168.***.***:3306/book_db?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
2.2 业务模块(book)激活资源
spring:
profiles:
active: dev,domain
2.3 common模块自定义启动配置类
模块下定义一个配置类
@Data
public class MybatisUtil {
private String name;
}
@Configuration
@Slf4j
public class MybatisConfig {
@Bean
public MybatisUtil mybatisUtil(){
MybatisUtil mybatisUtil = new MybatisUtil();
mybatisUtil.setName("测试配置类——MybatisConfig");
log.debug("O.o测试配置类MybatisConfig");
return mybatisUtil;
}
}
2.4 springboot启动时在做什么?
-
扫描包有自动AutoCongfiguration
-
扫描resource/META-INF/spring.factories
在模块resource目录下新建META-INF文件夹,新建spring.factories,输入以下信息:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.****.bms.common.MybatisConfig
2.5 其它模块启动引入依赖
<dependency>
<groupId>com.****.bms.common</groupId>
<artifactId>bms-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>