端口号的控制,只能某个应用只能跑规定的端口号,本次就将这个操作记录下来了。


一、第一步

        新建数据库表,用于保存端口号以及应用限制的配置,如下:

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_大数据

CREATE TABLE `sys_service` (
  `service_code` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '服务名称',
  `service_desc` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '服务描述',
  `service_port` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '服务端口号',
  `status` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '状态,0是启用,1是停用'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin;

二、第二步

基于项目已经整合了mybatis-plus,前面有讲过,忘了可以去翻翻。

新增如下类

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_大数据_02

        将该类注入spring容器,并向该类注入mybatis的mapper,该mapper映射的是刚才创建的表的实体类,具体可以翻翻前面的整合mabatis,此处就不截图mapper层和实体类了,主要将这个类。

  • 通过@Value("${spring.application.name}")获取应用的服务名称
  • 通过@Value("${server.port}")获取应用的端口号

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_大数据_03

 

        该类实现至InitializingBean接口,该接口只有一个方法。

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_spring_04

        InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在spring容器初始化该bean的时候会执行该方法。

        如此这般,就可以通过它来做一些项目启动时想做的事了,例如将一些全局静态属性存入redis或者本文想做的,将该应用的端口号去做判断,进行限制。

三、第三步

查看测试结果:

        数据库中配置的demo服务的端口为8085

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_spring_05

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_spring_06

        可见,8085启动成功

        现在修改端口为8086。 

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_大数据_07

SpringBoot怎样在项目启动时屏蔽WARN级别的日志输出 springboot屏蔽数据库_大数据_08

        可见启动失败了。

四、第四步

补充:此外,不通过实现上述接口,通过标签将bean注入spring容器时,通过加上init-method属性指定一个方法,也可以实现初始化某个bean时执行某个方法。

例如:

<bean id="testBean" class="com.Test" init-method="testMethod"></bean>