>  기사  >  Java  >  SpringBoot 로딩 서브모듈 구성 파일 상세 소개(코드 예시)

SpringBoot 로딩 서브모듈 구성 파일 상세 소개(코드 예시)

不言
不言앞으로
2019-02-16 13:47:484978검색

이 기사는 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

런처에 주석을 답니다. class

@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);
    }
}

Run

그럼 환영받는 오류 메시지

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: &#39;url&#39; 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제