• 技术文章 >Java >java教程

    SpringBoot加载子模块配置文件的详细介绍(代码示例)

    不言不言2019-02-16 13:47:48转载2743
    本篇文章给大家带来的内容是关于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.Driver
    mybatis:
      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 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).

    没有找到数据库的配置文件

    找错的过程很痛苦,找了很多资料,走了很多弯路,最后将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加载子模块配置文件的详细介绍(代码示例)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:博客园,如有侵犯,请联系admin@php.cn删除
    专题推荐:SpringBoot
    上一篇:ThreadLocal的实现原理的分析介绍(附代码) 下一篇:java中多态的深入解析(代码示例)
    大前端线上培训班

    相关文章推荐

    • 使用jquery+ajaxform+springboot如何实现数据更新• 在Vue+SpringBoot中如何实现博客管理平台• SpringBoot和Vue.js实现前后端分离的文件上传功能• JAVA开发之springBoot2.0搭建双数据源

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网