本篇文章给大家带来的内容是关于springboot加载子模块配置文件的详细介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
这两天开始学习springboot框架,按照官方的文档,很轻易地就把单模块的项目启动了,但在使用maven搭建多模块的时候遇到了子模块配置文件没有加载的问题
项目架构是这样的
zero |-ws |-service |-dao |-entity
zero的依赖<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> </dependencies>
ws的依赖和配置<dependencies> <dependency> <groupid>cn.xmcui.zero</groupid> <artifactid>service</artifactid> <version>1.0-snapshot</version> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <configuration> <!--指定该class为全局唯一入口--> <mainclass>cn.xmcui.zero.application</mainclass> <fork>true</fork> <layout>zip</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
ws的application.yml
server: port: 80 servlet: session: timeout: 60 tomcat: uri-encoding: utf-8
dao的依赖和配置<dependencies> <dependency> <groupid>cn.xmcui.zero</groupid> <artifactid>entity</artifactid> <version>1.0-snapshot</version> </dependency> <dependency> <groupid>org.mybatis.spring.boot</groupid> <artifactid>mybatis-spring-boot-starter</artifactid> <version>1.3.2</version> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.47</version> </dependency> </dependencies>
application.yml
spring: datasource: url: jdbc:mysql://localhost:3306/zero?useunicode=true&characterencoding=utf-8&usessl=false username: root password: root driver-class-name: com.mysql.jdbc.drivermybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: cn.xmcui.zero.entity
给启动器类加注解@springbootapplication(scanbasepackages = "cn.xmcui.zero")@mapperscan(basepackages = "cn.xmcui.zero.mapper")public class application { public static void main(string[] args) { springapplication.run(application.class, args); }}
运行然后是喜闻乐见的报错
***************************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 classaction: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).
没有找到数据库的配置文件
找错的过程很痛苦,找了很多资料,走了很多弯路,最后将dao层的application.yml全部剪切到ws的application.yml中,项目点亮,成功运行.这就明确到dao层的配置文件没有被加载.
然后找到了加载配置文件的方法:
我将ws层application.yml重命名为application-dev.yml;将dao层配置文件重命名为application-dao.yml(让配置文件不重名,需要注意,配置文件重命名后必须以application-做前缀);
在ws层再新建一个application.yml
spring: profiles: active: dao,dev
这条配置是指定加载哪些配置文件
操作完成,系统成功点亮
本来是很简单的问题,却浪费了我很长的时间,还有一件事情必须要吐槽一下,现在springboot相关的博客质量真是良莠不齐,相当数量的人还是把它当springmvc用;使用它,却不用它的新特性,真的是毫无意义啊.
以上就是springboot加载子模块配置文件的详细介绍(代码示例)的详细内容。