Springboot中去除SecurityAutoConfigurationImportFilter 报 Invalid bound statemenInvalid bound statement (not found):
时间: 2024-08-16 10:06:34 浏览: 51
Spring Boot Security 自带了一个名为 `SecurityAutoConfigurationImportFilter` 的类,它用于自动排除一些不需要的依赖配置。如果你遇到 "Invalid bound statement (not found)" 错误,这通常是因为尝试从已经禁用了 `SecurityAutoConfiguration` 的应用中动态导入安全相关的数据源声明。
这个错误通常是由于你在应用程序试图通过 `@EnableJpaAuditing` 或其他Spring Data JPA审计注解启用数据审计功能,而这些依赖于Spring Security的默认设置。当 `SecurityAutoConfiguration` 被禁用时,审计配置就会失败,因为找不到预期的数据源声明(例如`DataSource` bean)。
解决这个问题有几种方法:
1. **手动配置**:你可以移除或禁用导致冲突的依赖,并显式地配置数据源和审计相关的服务,如JpaRepository等。
2. **排除过滤**:在你的 `application.properties` 或 `application.yml` 文件中,添加以下配置来排除 `SecurityAutoConfigurationImportFilter`:
```properties
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
```
3. **使用条件注解**:如果确实需要Security,但是不想包含某些特定的组件,可以使用 `@ConditionalOnMissingBean` 条件注解来阻止自动装配。
记得检查是否有其他的第三方库或者自定义配置导致了这种冲突,并确保你的安全和数据访问配置是一致的。
阅读全文