背景

在服务架构中,有些springboot工程只是简单的作为服务,并不提供web服务。或者并不提供对外的访问服务,这个时候我们只想能以后台进程去运行,因为项目只是作为客户端去做一些操作系统或者去请求其他任务的事情,并不想要启动端口。

我们以Spring Boot (v2.3.3.RELEASE)为例进行讲解。

大家会问,这个Spring Boot在运维领域有关系吗?不过我觉得有关系,我虽然是是干运维领域的,但是我有时候会写一些工具,用过的语言有Python,Golang,PHP以及Spring Boot,Vue,JavaScripts,我觉得这几门语言都是很好的语言。能帮助自己写不同的工具,因为这几门语言我都懂。

好我们来看看Spring Boot的如果实现。

实现无端口启动

网上说如果要无端口模式,分web项目和非web项目来处理。如果是非web项目就把下面的依赖去掉。

       <dependency>            <groupId>org.springframework.bootgroupId>            <artifactId>spring-boot-starter-webartifactId>        dependency>

对于Sring Boot来讲,我们觉得没必要去除依赖(当然你也可以去掉依赖),就可以让进程常驻内存。具体步骤如下:

(1) 首先我们正常的新建Spring Boot web项目。

(2)修改配置文件:application.properties

# 无端口模式启动web项目spring.main.web-application-type=none

到处为止,我们启动Spring Boot的时候会自动关闭。因为没有去执行所以就结束了。所以我们可以使用定时任务,从而让它常驻进程并且不启动端口

(3)添加定时任务从而让它常驻进程。(启一个定时任务不做任何事情是为了让进程能常驻内存)

package yeyese.noport.task; import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled; import java.time.LocalDateTime; @Configuration      //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling   // 2.开启定时任务public class SaticScheduleTask {    //3.添加定时任务    @Scheduled(cron = "*/30 * * * * ?")     //或直接指定时间间隔,例如:5分钟    private void configureTasks() {         System.err.println("测试无端口模式启动,然后执行定时任务: " + LocalDateTime.now());    } }

验证

到此,我们看到进程常驻了,并且没有启动端口。

我们放到Linux服务器上去跑一下看看:

#ps -ef |grep java      www        6616      1  6 15:00 ?        00:00:03 java -jar noport-0.0.1-SNAPSHOT.jarroot       6689   6670  0 15:01 pts/0    00:00:00 grep --color=auto java #netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1069/sshd           tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           tcp6       0      0 :::22                   :::*                    LISTEN      1069/sshd            

boot spring 获取请求端口浩_Spring boot 无端口模式启动相关推荐

  1. boot spring 获取请求端口浩_Spring精华问答 | 如何集成Spring Boot?

    Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持.今天就让我们一起来看看关于Spring的精华问答吧. 1 Q:如何在自定义端口上运 ...

  2. boot spring 获取请求端口浩_6、如何获取配置中心的配置

    公众号:java乐园 在<配置中心>这一篇博文里学习了如何git获取配置文件.大概的流程可以用下图来概括. <配置中心>这篇博文说的是Config Server,本篇将和大家看 ...

  3. 3.spring boot Controller获取请求参数的值

    2019独角兽企业重金招聘Python工程师标准>>> 1.获取连接中的参数,使用倒的关键词@PathVariable @RestController public class He ...

  4. spring定时每天早上八点_Spring Boot教程(13) – 简单定时任务

    "每隔几分钟执行一个任务"这种需求,几乎在每个项目里都有可能遇到.Spring框架提供了一种简单的方式来完成这一需求.你只需要在定时执行的方法上加上注解就行了. 首先你需要开启这一 ...

  5. boot spring 打印请求参数_SpringBoot打印请求参数与响应参数

    前言 使用Aop的环绕通知实现 加入依赖 org.projectlombok lombok org.springframework.boot spring-boot-starter-aop 编码 im ...

  6. spring日志报错提醒_Spring Boot 2.x : 整合日志框架 Log4j2

    日志框架概述 在一个 web 项目建设中,如果说第一件事是 Spring 框架的搭建,那么第二件事就是日志框架的搭建,线上 web 项目的日志可能是我们了解项目运行的唯一方式. 常用日志框架 java ...

  7. springboot项目拦截器中获取接口返回数据_Spring Boot自定义Annotation实现接口自动幂...

    在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重 ...

  8. ashx获取客户端excel文件_Spring Boot实现导出Excel功能

    同样的,看你要导出的Excel后缀是xls格式还是xlsx格式,不同的格式代码稍微有些不同,下面是导出xlsx格式的Excel. Maven: org.apache.poi poi 3.9org.ap ...

  9. spring jpa mysql集群_Spring Boot系列之十四 JPA 连接mycat

    接 本文介绍使用spring-data-jpa连接mycat实现应用的读写分离. 系统环境spring-boot 1.4.3-RELEASE jdk1.8 进入正题application.yml配置文 ...

  10. spring boot + spring mvc 原理解析

    前言:spring mvc 是当前最为流行的一种java WEB 框架.在还没有spring boot以前,通常搭配tomcat等容器进行web项目的开发.而现在spring全家桶越来越完善.慢慢脱离 ...

最新文章

  1. 二维数组练习--矩阵的加法和乘法
  2. Django中的Session与Cookie
  3. 看看老外是如何理解抽象类的
  4. 查看Linux上程序或进程用到的库
  5. iOS开发之MAC的内存清理,Xcode清理
  6. android自定义GifView显示gif动画
  7. 闲谈:渗透测试-红队版
  8. 计算机开机界面用户如何删除,怎么删除电脑登陆账户_怎么删除电脑开机账户...
  9. Db2数据库:日期函数DATE函数
  10. TS在vue中的应用
  11. hadoop性能优化(调优)
  12. 用计算机处理机读卡上,改卷子和登分程序及其注意事项以及一些操作
  13. 计算广告(3)----搜索广告召回匹配
  14. 解题报告 (十三) 尺取法
  15. 负载均衡服务器性能数据,用缓存服务器负载均衡 提数据库查询效率
  16. php上传文件到七牛云,如何使用php上传大文件到七牛云储?
  17. ICMP协议之tracert实现
  18. 谷歌浏览器(Chrome)如何安装crx插件?(详细步骤)
  19. 【毕业设计】LSTM预测算法(股票预测 天气预测 房价预测)
  20. biubiu~~~~~文件操作来喽

热门文章

  1. snap占用/dev/loop0-/dev/loop11占用100%
  2. 算法笔记_面试_0.刷leetcode_基础知识范围
  3. 论文笔记_SLAM_Visual SLAM for Driverless Cars: A Brief Survey
  4. 线性代数【六】:解线性方程组
  5. CentOS 7伪分布式方式安装Hadoop-2.6.0-cdh5.6.0并且通过主机浏览器访问hadoop工作台
  6. 一文详解YOLOX算法实现血细胞检测
  7. 论文简述 | Voxel Map for Visual SLAM
  8. HTTP Cookies
  9. FreeBSD下面安装PostgreSQL。
  10. 关于div+css布局值得注意的地方