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

    感谢阅读

    努力提高自己的技术,不忘初心
  • 相关阅读:
    登入界面的创建
    什么是IO流 以及文件输入输出
    java 的面向对象
    Mac 终端命令大全
    jQuery 的属性
    商城管理系统
    Java IO学习第二天部分详解
    Java IO学习第一天部分详解
    用JAVA描述一个车与修车厂两个事物
    JAVA基础(数组)数组排序和查找数组中是否还有某一个数
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9841802.html
Copyright © 2011-2022 走看看