zoukankan      html  css  js  c++  java
  • 项目启动加载配置,以及IP黑名单,使用CommandLineRunner和ApplicationRunner来实现(一般用在网关进行拦截黑名单)

    //使用2个类的run方法都可以在项目启动时加载配置,唯一不同的是他们的参数不一样,CommandLineRunner的run方法参数是基本类型,ApplicationRunner的run方法参数是一个ApplicationArguments对象

    下面做个ip黑名单的demo:

    首先在application.yml配置ip黑名单,如下图

    之后在启动时,加载进入内存:

    package com.example.demo.config;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.util.StringUtils;
    
    import java.util.HashSet;
    import java.util.Set;
    
    @Configuration
    public class Ipconfig implements CommandLineRunner{
        @Value("${ipBlack._set}")
        private String ipBlack;
    
        public static final Set<String> ipblackSet=new HashSet<>();
    
    
        public void run(String... strings) throws Exception {
            if(StringUtils.isEmpty(ipBlack)){
                System.out.println("没有黑名单");
            }
            String[] split = ipBlack.split("\
    ");
            for (String s : split) {
                ipblackSet.add(s.trim());
            }
            System.out.println(ipblackSet);
    
        }
    }
    //为了测试2个类,谁的run方法先执行,下面写了一个demo:
    package com.example.demo.config;
    
    import org.springframework.boot.ApplicationArguments;
    import org.springframework.boot.ApplicationRunner;
    import org.springframework.stereotype.Component;
    
    @Component
    public class IPConfig2 implements ApplicationRunner {
        @Override
        public void run(ApplicationArguments applicationArguments) throws Exception {
    
            System.out.println("是不是我先执行呢");
        }
    }
    
    注意:类上要加注解componet或者其他的,让spring管理,不然没效果
    结果如图:
    

     

  • 相关阅读:
    从BATS交易所获取空头头寸
    用cython提升python的性能
    用Python编写的第一个回测程序
    Omi框架学习之旅
    Omi框架学习之旅
    AlloyTouch.js 源码 学习笔记及原理说明
    AlloyFinger.js 源码 学习笔记及原理说明
    Git 学习笔记
    从数组中每次取一个不同的数组成员 getRandomItem(arr)
    move.js 源码 学习笔记
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/11193313.html
Copyright © 2011-2022 走看看