zoukankan      html  css  js  c++  java
  • spring boot --- 注解 @Bean 和@Component

    1.前言

    @Bean是给方法注册bean

    @Component是给不好归类的类注册bean

    2.可以达到一样的效果

    (1)@Component 直接注册即可

     完整源码 

    package com.example.demomycenzuul.myFilter;
    
    
    import com.netflix.zuul.ZuulFilter;
    import com.netflix.zuul.context.RequestContext;
    import org.apache.commons.lang.StringUtils;
    
    import org.slf4j.LoggerFactory;
    import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
    import org.springframework.context.annotation.Bean;
    import org.springframework.stereotype.Component;
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.logging.Logger;
    
    
    @Component
    public class AccessFilter extends ZuulFilter {
    
        @Override
        public String filterType() {
            return FilterConstants.PRE_TYPE;
        }
    
        @Override
        public int filterOrder() {
            return 0;
        }
    
        @Override
        public boolean shouldFilter() {
            return true;
        }
    
        @Override
        public Object run() {
            System.out.println("进入zuul拦截");
            //获取上下文
            RequestContext ctx = RequestContext.getCurrentContext();
            //获取Request
            HttpServletRequest request = ctx.getRequest();
            //获取请求参数accessToken
            String accessToken = request.getParameter("accessToken");
            //使用String工具类
            if (StringUtils.isBlank(accessToken)) {
                ctx.setSendZuulResponse(false);  //进行拦截
                ctx.setResponseStatusCode(401);
                try {
                    ctx.getResponse().getWriter().write("accessToken is empty,-------401");
                } catch (Exception e) {
                }
                return null;
            }
            return null;
        }
    
    }
    View Code

     (2)@bean则不需要在类加注解

     但是,需要去启动类new这个类

  • 相关阅读:
    僵尸进程与孤儿进程/守护进程/互斥锁
    基于udp协议支持并发的套接字/并发相关的概念/开启进程的两种方式/进程对象的方法
    python3和python2的区别
    安装python
    浅谈aiohttp和middlewares
    IO多路复用之select,poll,epoll个人理解
    python之进程,线程,协程简单理解
    Python类__call__()方法
    python中str与bytes
    测试理论基础三
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/12892455.html
Copyright © 2011-2022 走看看