zoukankan      html  css  js  c++  java
  • SpringBoot中在除controller以外注入service-过滤器中注入

    一般我们都是在controller层注入service那么如何在过滤器中注入service呢 一般使用过滤器在启动类中添加如下代码

     1 @SpringBootApplication
     2 @MapperScan("com.cmbchina.ccd.itpm.baffle.dao")
     3 
     4 public class BaffleApplication extends SpringBootServletInitializer {
     5     @Override
     6     protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
     7         return builder.sources(BaffleApplication.class);
     8     }
     9 
    10     public static void main(String[] args) {
    11         SpringApplication.run(BaffleApplication.class, args);
    12     }
    13     //配置过滤器
    14     @Bean
    15     public FilterRegistrationBean filterRegistrationBean(){
    16         FilterRegistrationBean filterFilterRegistrationBean = new FilterRegistrationBean(new UrlFilter());
    17         filterFilterRegistrationBean.addUrlPatterns("/*");
    18         return filterFilterRegistrationBean;
    19     }
    20 
    21 
    22 }

    这样的话启动的时候就会加载这个过滤器 要是直接在过滤器中直接@Autowired 会出先空指针的我们可以采用下面的方法

     1 @Component
     2 public class UrlFilter implements Filter {
     3     @Autowired
     4     private UrlServicer urlServicer;
     5    /* private static  Logger logger= LoggerFactory.getLogger(UrlFilter .class);*/
     6     @Override
     7     public void init(FilterConfig filterConfig) throws ServletException {
     8         ServletContext sc = filterConfig.getServletContext();
     9         WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(sc);
    10         if(cxt != null && cxt.getBean(UrlServicer.class) != null && urlServicer == null) {
    11             urlServicer =cxt.getBean(UrlServicer.class);
    12         }
    13     }

    在过滤器加上@Component注解在init方法中初始化你要注入的service就可以了

    感谢阅读

    努力提高自己的技术,不忘初心
  • 相关阅读:
    关于 " +new Date " 的个人见解
    利用text插件和css插件优化web应用
    gulp如何自定义插件
    NGINX实现域名跳转
    转:分享两个饼状图在线生成工具
    Windows下根据端口号查找进程并关闭【转载】
    树和二叉树
    学习表——受任于败军之际,奉命于危难之间(2.20--2.26)
    Incremental Method
    374. Guess Number Higher or Lower 简单的二分法运用
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9841802.html
Copyright © 2011-2022 走看看