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就可以了

    感谢阅读

    努力提高自己的技术,不忘初心
  • 相关阅读:
    jQuery 入门 -- 事件 事件绑定与事件委托
    原生js实现视差风格音乐播放器
    jQuery 入门
    一些开放的免费接口【已失效】
    php mysqli操作数据库
    DOM 相关
    面向对象
    对象
    博客园添加鼠标点击特效
    正则表达式
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9841802.html
Copyright © 2011-2022 走看看