美文网首页
Srping boot自动装配 实现自己的starter

Srping boot自动装配 实现自己的starter

作者: 史啸天 | 来源:发表于2022-07-01 13:57 被阅读0次

    前言

    Srping自动装配非常实用,我们可以利用这个把项目解耦合,真正使用的只需引入即可使用。
    今天我们来演示下自动装配,利用自动装配,实现web拦截器,解析request中的内容。

    项目搭建

    引入需要的pom

    <dependencies>                                              
        <dependency>                                            
            <groupId>org.projectlombok</groupId>                
            <artifactId>lombok</artifactId>                     
            <version>1.18.24</version>                          
        </dependency>                                           
                                                                
        <dependency>                                            
            <groupId>org.springframework.boot</groupId>         
            <artifactId>spring-boot-autoconfigure</artifactId>  
            <version>2.7.0</version>                            
        </dependency>                                           
        <dependency>                                            
            <groupId>org.springframework</groupId>              
            <artifactId>spring-webmvc</artifactId>              
            <version>5.3.20</version>                           
        </dependency>                                           
        <dependency>                                            
            <groupId>javax.servlet</groupId>                    
            <artifactId>javax.servlet-api</artifactId>          
            <version>4.0.1</version>                            
            <scope>provided</scope>                             
        </dependency>                                           
                                                                
        <!-- json -->                                           
        <dependency>                                            
            <groupId>com.alibaba</groupId>                      
            <artifactId>fastjson</artifactId>                   
            <version>2.0.3</version>                            
        </dependency>                                           
    </dependencies>                                             
    

    编写拦截器

    import org.springframework.web.servlet.HandlerInterceptor;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * @author sxt
     * @date 2022-07-01
     * @describe header拦截器
     */
    public class HeaderInterceptor implements HandlerInterceptor {
        private final static String OPTIONS = "OPTIONS";
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            System.out.println("处理request");
            return true;
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
            System.out.println("后置处理");
        }
    }
    

    web配置

    import org.springframework.core.Ordered;
    import org.springframework.core.annotation.Order;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    /**
     * @author sxt
     * @date 2022-07-01
     * @describe web配置
     */
    @Order(Ordered.HIGHEST_PRECEDENCE)
    public class WebConfig implements WebMvcConfigurer {
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new HeaderInterceptor());
        }
    }
    

    自动装配配置类

    import com.yqsl.config.header.WebConfig;
    import org.springframework.context.annotation.Import;
    
    
    /**
     * @author sxt
     * @date 2022-07-01
     * @describe 自动配置
     */
    @Import(WebConfig.class)
    public class HeaderAutoConfiguration {
    }
    

    在/resource/META-INF/spring.factories中添加类路径

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.yqsl.config.HeaderAutoConfiguration
    

    上传jar包

    此时需要注意,直接打包有可能打包失败,需要把pom中内容删掉

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    

    打成jar包,上传到云仓库中,项目引入对应jar,就可以直接使用了。

    相关文章

      网友评论

          本文标题:Srping boot自动装配 实现自己的starter

          本文链接:https://www.haomeiwen.com/subject/vuecbrtx.html