springboot启动不设置端口
非web工程
在服务架构中,有些springboot工程只是简单的作为服务,并不提供web服务
这个时候不需要依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
但是启动springboot的话,启动之后就会自动关闭,可以通过如下方式解决
实现CommandLineRunner,重写run方法即可,这样启动后就不会关闭
@SpringBootApplication
@EnableDubbo
public class SeaProviderLogApplication implements CommandLineRunner { public static void main(String[] args) {
SpringApplication.run(SeaProviderLogApplication.class, args);
} @Override
public void run(String... args) throws Exception {
System.out.println("SeaProviderLogApplication正在启动。。。");
while(true) {
Thread.sleep(600000000);
System.out.println("sleep....");
}
}
}
有人可能会说,引入spring-boot-starter-web主要是为了方便测试,其实完全可以使用单元测试进行操作
使用@SpringBootTest和@RunWith(SpringRunner.class)注解即可进行单元测试代码如下
@SpringBootTest
@RunWith(SpringRunner.class)
public class IndexControllerTest { @Reference(version = "1.0.1")
private ErrorLogService errorLogService; @Test
public void bbb() {
ErrorLog errorLog = new ErrorLog();
errorLog.setName("error");
System.out.println(errorLogService.sendMsg(errorLog));
}
}
web工程
但是有时候由于maven聚合工程,会依赖common或者parent,会自然的引入了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这个时候启动的话,默认端口是,当然是可以在application.properties中配置
server.port=8081 来进行修改,但是比较麻烦,因为本就不暴露http请求,没必要添加spring-boot-starter-web依赖,服务多的话也端口设置也让人头疼,会产生端口占用问题
由于不提供web服务,属实没必要暴露端口,可以通过如下两种方式进行启动不设置端口号
第一种:
修改application配置文件
spring:
main:
allow-bean-definition-overriding: true
web-application-type: none
第二种:
修改启动入口
public static void main(String[] args) {
new SpringApplicationBuilder(Application .class)
.web(WebApplicationType.NONE) // .REACTIVE, .SERVLET
.run(args);
}
OK,完美解决,再也不用考虑端口分配问题了
springboot整合dubbo可以参考 springboot2.x纯注解整合dubbo
springboot启动不设置端口的更多相关文章
- SpringBoot 启动参数设置环境变量、JVM参数、tomcat远程调试
java命令的模版:java [-options] -jar jarfile [args...] 先贴一下我的简单的启动命令: java -Xms128m -Xmx256m -Xdebug -Xrun ...
- tomcat端口修改以及jvm启动参数设置
1.端口更改:找到config目录下server.xml文件 如下 <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to t ...
- mac启动springboot失败,8080端口被占用,mac命令行关闭端口
如下图,idea启动springboot失败,8080端口被占用 Error starting ApplicationContext. To display the conditions report ...
- SpringBoot学习笔记(八):SpringBoot启动端口+访问路、SpringBoot配置文件yml、SpringBoot多环境区分、SpringBoot打包发布
SpringBoot启动端口+访问路径 配置文件: server.port=9090 server.context-path=/springboot 现在只能用http://127.0.0.1:909 ...
- SpringBoot(三):springboot启动参数
springboot默认启动入口函数是支持接收参数,并且在整个应用程序内部也可以获取到这些参数,并且如果传递的参数是一些内部定义的参数将会被映射到springboot内部配置项,从而达到配置效果. s ...
- SpringBoot启动原理及相关流程
一.springboot启动原理及相关流程概览 springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置.那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置 二 ...
- (四)SpringBoot启动过程的分析-预处理ApplicationContext
-- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇(三)SpringBoot启动过程的分析-创建应用程序上下文,本文将分析上下文创建完毕之后的下一步操作:预处理上下文容器. 预处理上下文 ...
- 从SpringBoot启动,阅读源码设计
目录 一.背景说明 二.SpringBoot工程 三.应用上下文 四.资源加载 五.应用环境 六.Bean对象 七.Tomcat服务 八.事件模型 九.配置加载 十.数据库集成 十一.参考源码 服务启 ...
- Springboot启动源码详解
我们开发任何一个Spring Boot项目,都会用到如下的启动类 @SpringBootApplication public class Application { public static voi ...
随机推荐
- 使用Netty实现通用二进制协议的高效数据传输
Netty是一个高性能的NIO通信框架,提供异步的.事件驱动的网络编程模型.使用Netty可以方便用户开发各种常用协议的网络程序.例如:TCP.UDP.HTTP等等. Netty的最新版本是3.2.7 ...
- Debug监视器(监视运行期程序通过API函数OutputDebugString输出的字符串)
http://download.csdn.net/detail/zswang/207199
- 核心思想:自由职业的所谓自由,必须先职业,然后才能自由(还要对抗自己的惰性,提前寻找客户)good
除了前面提到的专业性,还要足够自律,能够管理好自己的时间和精力. 具体来说,需要目标管理和时间(精力)管理. 所谓目标管理,对于自由职业者来讲,就是要识别出自己最擅长的方向,确立自己可以提供的最有价值 ...
- Dependency Injection 筆記 (1)
<.NET 依賴注入>連載 (1) 本文从一个基本的问题开始,点出软件需求变动的常态,以说明为什么我们需要学习「依赖注入」(dependency injection:简称 DI)来改善设计 ...
- Qt VS版本添加调试器
Qt的VS版本默认是不带调试器的,可以去百度一个WinDbg,如下图所示. 将其中的cdb.exe添加到Qt Creator构建和运行的Debuggers标签页即可,如下图所示. http://blo ...
- Django之forms组件进阶
Django Form表单组件 Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要 ...
- orale数据库to_char时间中英文转换
一.显示中文星期天 select to_char(sysdate,'day','NLS_DATE_LANGUAGE=''SIMPLIFIED CHINESE''') from dual; 二.显示英文 ...
- java多线程死锁
进程(线程)同步的基本概念 进程之间的制约关系 1. 直接制约关系(进程同步) 这个关系主要源于进程合作,例如,有一个输入进程A通过单缓冲向进程B提供数据,当该缓冲空时,进程B因为不能获得所需数据而被 ...
- 普通用户执行ansible权限被拒绝
ansible --help 获取帮助信息 -s 参数 使用sudo
- .NET开发框架(四)-服务器IIS安装教程
Windows Server 2012 R2 配置篇,包括服务器IIS安装.网络负载均衡器安装.ASP.NET Core 安装. 前三篇教程中,我们分享了框架的功能与视频演示介绍(文尾扫码 加入 框架 ...