Cet article vous apporte une introduction détaillée (exemple de code) sur le chargement des fichiers de configuration de sous-module par SpringBoot. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
J'ai commencé à apprendre le framework SpringBoot au cours des deux derniers jours. D'après la documentation officielle, j'ai facilement démarré le projet à module unique. Cependant, lorsque j'utilisais maven pour créer plusieurs modules, j'ai rencontré le problème suivant. Le fichier de configuration du sous-module n'a pas été chargé
La structure du projet est comme ceci
zero |-ws |-service |-dao |-entity
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
<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>
Application ws.yml
server: port: 80 servlet: session: timeout: 60 tomcat: uri-encoding: utf-8
<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); } }
puis le message d'erreur de bienvenue
*************************** 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).
Le fichier de configuration de la base de données n'a pas été trouvé
Le processus de recherche de l'erreur a été très pénible . J'ai cherché beaucoup d'informations et fait de nombreux détours, j'ai finalement coupé tout le fichier application.yml de la couche dao dans le fichier application.yml de ws, le projet s'allume et s'exécute avec succès. la couche dao n'a pas été chargée.
Ensuite, le chargement est trouvé Méthode du fichier de configuration :
J'ai renommé la couche ws application.yml en application-dev.yml ; vers application-dao.yml (notez que les fichiers de configuration n'ont pas le même nom) , le fichier de configuration doit être préfixé par application- après avoir renommé);
Créez un nouveau application.yml dans la couche ws
spring: profiles: active: dao,dev
Cette configuration précise quels fichiers de configuration charger
L'opération est terminée et le système s'allume avec succès
C'était à l'origine une question très simple, mais il m'a fallu depuis longtemps. Il y a encore une chose dont je dois me plaindre. La qualité des blogs liés à SpringBoot est vraiment mitigée maintenant. Un nombre considérable de personnes l'utilisent encore comme SpringMvc, cela n'a vraiment aucun sens de l'utiliser sans utiliser ses nouvelles fonctionnalités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!