赞
踩
在Spring Boot启动时禁止自动配置数据源相关的组件。
这个注解通常应该写在微服务项目的主启动类上,也就是包含 main 方法的那个类。示例代码如下:
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-
- @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
- public class YourApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(YourApplication.class, args);
- }
- }
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用在于定制Spring Boot的自动配置行为。Spring Boot的一大特性是自动配置(Auto-Configuration),它会根据项目类路径下的依赖自动配置Spring容器中的各种bean,极大地简化了应用的配置工作。DataSourceAutoConfiguration 是Spring Boot自动配置模块的一部分,它负责自动配置数据源(DataSource)的相关bean,如DataSource本身、JdbcTemplate、NamedParameterJdbcTemplate等。当项目中引入了数据库相关的依赖(如mysql-connector-java)时,Spring Boot默认会自动配置数据源。如果您在项目中不想使用Spring Boot自动配置的数据源,而是想手动配置或完全不使用数据库,那么可以使用 exclude 属性来排除 DataSourceAutoConfiguration 类。这样,Spring Boot启动时就不会尝试自动配置数据源相关的bean,也不会读取 spring.datasource.* 配置项去连接数据库。总结来说,@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的主要作用是:在Spring Boot启动时禁止自动配置数据源相关的组件。
该注解我是为了解决以下问题
我不想要微服务项目中子项目中的mysql相关配置了,单无论如何都无法删除以下配置
spring.datasource.url=jdbc:mysql://${TARGET_DB_IP}:${TARGET_DB_PORT}/${TARGET_DB_NAME}?useUnicode=true&autoReconnect=true&characterEncoding=UTF-8&allowMultiQueries=true
spring.datasource.username=${TARGET_DB_USER_NAME}
spring.datasource.password=${TARGET_DB_PASSWORD}
spring.datasource.driver-clas-name=com.mysql.jdbc.Driver
只要删了就会报错,把用到该环境变量的配置文件删了项目可以运行,但是把以上配置删了就会报错如下:
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 (the profiles test are currently active).
想着把mysql涉及的依赖都排除掉,就是用
<dependency>
<groupId>material-manage</groupId>
<artifactId>inAndOut-manage-service</artifactId>
<version>0.0.1</version>
<exclusions>
<exclusion>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</exclusion>
</exclusions>
</dependency>
该方法从子项目中把父项目的mysql依赖排除都会报错,最终用@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})注解解决。
还有该注解与@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})注解功能正好相反
ErrorMvcAutoConfiguration类是Spring Boot提供的自动配置类之一,它用于配置错误页面和错误处理机制。当我们不想使用默认的错误页面和错误处理逻辑时,可以使用exclude属性将ErrorMvcAutoConfiguration类排除掉。
通过排除ErrorMvcAutoConfiguration类,我们可以自定义错误页面和错误处理逻辑,或者使用其他的错误处理机制。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。