项目启动加载配置,以及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("\\\n");
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管理,不然没效果
结果如图:

项目启动加载配置,以及IP黑名单,使用CommandLineRunner和ApplicationRunner来实现(一般用在网关进行拦截黑名单)的更多相关文章
- java web项目启动加载顺序
转载:https://www.cnblogs.com/writeLessDoMore/p/6935524.html web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:T ...
- --print-defaults打印mysqld启动加载配置
Mysql启动配置文件加载路径 Mysql可以读取到的配置文件 /etc/my.cnf /etc/mysql/my.cnf /usr/local ...
- 遇到的问题之"项目启动加载不出页面"
已找到解决方案1 需要启动这两个微服务(注意:这个属于个人,你们也可以看看是否关联到相关微服务未启动)
- nginx 启动,停止和重新加载配置
要启动nginx的,运行可执行文件.一旦nginx的启动时,它可以通过与-s参数调用可执行来控制.使用以下语法 nginx -s signal 其中,信号可以是下列之一: stop - fast sh ...
- AngularJS进阶(三十九)基于项目实战解析ng启动加载过程
基于项目实战解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2 ...
- webdriver 启动chrome时加载配置
Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome配置的方法: 一.加载所有Chrome配置 用Chrom ...
- Windows机器配置启动加载器的高级选项后,机器出现蓝屏,无法RDP
问题描述: 虚拟机重启后出现蓝屏,需要排查原因 蓝屏界面如下: 排查结果: 1.Console发现机器停留在上述蓝屏界面,按F8后,机器可以正常启动并成功连接:但通过console再次重启后,又会进入 ...
- springboot集成mybatis源码分析-启动加载mybatis过程(二)
1.springboot项目最核心的就是自动加载配置,该功能则依赖的是一个注解@SpringBootApplication中的@EnableAutoConfiguration 2.EnableAuto ...
- JavaWeb 服务启动时,在后台启动加载一个线程
JavaWeb 服务启动时,在后台启动加载一个线程. 目前,我所掌握的一共有两种方法,第一种是监听(Listener),第二种是配置随项目启动而启动的Servlet. 下面对这两种方法做一简单的介绍, ...
随机推荐
- Kubernetes入门(二)——Dashboard 安装
Kubernetes集群搭建完成后,可以通过命令行方式可以了解集群资源的使用情况,但是这种方式比较笨拙且不直观,因此考虑给集群安装Dashboard,这样能更直观了解集群状态.本文Dashboard的 ...
- 这个爬虫JS逆向加密任务,你还不来试试?逆向入门级,适合一定爬虫基础的人
友情提示:在博客园更新比较慢,有兴趣的关注知识图谱与大数据公众号吧.这次选择苏宁易购登录密码加密,如能调试出来代表你具备了一定的JS逆向能力,初学者建议跟着内容调试一波,尽量独自将JS代码抠出来,实在 ...
- 总结java中创建并写文件的5种方式
在java中有很多的方法可以创建文件写文件,你是否真的认真的总结过?下面笔者就帮大家总结一下java中创建文件的五种方法. Files.newBufferedWriter(Java 8) Files. ...
- seo成功案例的背后秘密
http://www.wocaoseo.com/thread-319-1-1.html 刚刚在seo群内一个企业主告诉我,他在淘宝找了做seo排名的,在交了首付后,对方却跑路了.对方刚刚在淘宝开店,然 ...
- 3点带你快速学会Selenium工具的使用
(一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...
- JVM-Java创建对象过程
关键字:类加载过程.内存分配 指针碰撞法.空间列表法.CAS.TLAB.初始化.对象头 Java对象创建方式(不包含数组和Class对象创建): new指令 反射调用 反序列化 对象创建过程 遇到ne ...
- asterisk PBX 对接中国移动IMS
前提: 最近有项目需求,需要对接移动的IMS,移动的对接同事给出了信息: 用户名:+86750735xxxx@ims.gd.chinamobile.com 密码:123456 (系统导入的号码,默认 ...
- tars 部署
1. mysql url: 192.168.101.3 port: 3306 pw: 123456 一键部署 sudo ./linux-install.sh localhost 123456 en0 ...
- 从通达信导出文件获取A股所有股票代号名称(至2020年2月24日)
下文是讲述如何从通达信的输出文件中获得股票信息,如果想用Java爬虫从网页爬取信息请参考:https://www.cnblogs.com/xiandedanteng/p/12808381.html 要 ...
- Python基础 读取二进制文件
问题 有二进制文件中保存了 20 亿个 2 Bytes 的数,需将其读出,每 20000 个数作图,拟合后输出结果. 解决 # -*- coding: utf-8 -*- ""&q ...