开发者社区> 问答> 正文

建议依赖Web环境的配置,添加 @ConditionalOnWebApplication 注解

建议依赖Web环境的配置,添加 @ConditionalOnWebApplication 注解 如:DruidStatViewServletConfiguration、DruidWebStatFilterConfiguration 2个配置类,要不然非Web环境会抛异常

原提问者GitHub用户taolive

展开
收起
山海行 2023-07-05 20:59:41 188 0
3 条回答
写回答
取消 提交回答
  • 如果您的配置类需要依赖Web环境,并且在非Web环境中会抛出异常,可以使用@ConditionalOnWebApplication注解来确保配置类只在Web环境中生效。这个注解可以帮助您避免在非Web环境中加载不必要的配置类,提高应用程序的启动速度和效率。

    在您的情况下,您可以在DruidStatViewServletConfigurationDruidWebStatFilterConfiguration两个配置类上添加@ConditionalOnWebApplication注解,示例如下:

    import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @ConditionalOnWebApplication
    public class DruidStatViewServletConfiguration {
        // 配置类的内容
    }
    
    @Configuration
    @ConditionalOnWebApplication
    public class DruidWebStatFilterConfiguration {
        // 配置类的内容
    }
    

    通过添加@ConditionalOnWebApplication注解,这两个配置类将只在Web环境中生效,而在非Web环境中将被忽略,从而避免了可能出现的异常情况。

    请注意,在使用@ConditionalOnWebApplication注解之前,请确保已经引入了正确的相关依赖,并且项目已经配置为Web应用程序。

    2023-07-30 14:37:23
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在Spring Boot中,可以使用@ConditionalOnWebApplication注解来指定一个配置类只在Web环境中生效。这个注解可以帮助我们避免在非Web环境中加载不必要的配置类,从而提高应用程序的启动速度和效率。

    @ConditionalOnWebApplication注解通常用于需要依赖Web环境的配置类中,例如WebMvcConfigurer、WebSecurityConfigurer等。使用@ConditionalOnWebApplication注解可以保证这些配置类只会在Web环境中加载,避免在非Web环境中出现异常或者不必要的加载。

    2023-07-30 13:06:09
    赞同 展开评论 打赏
  • 问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14

    原回答者GitHub用户wenshao

    2023-07-06 11:47:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载