zoukankan      html  css  js  c++  java
  • 修改Springboot启动端口号

    前言
    Springboot启动的时候,端口的设定默认是8080,这肯定是不行的,我们需要自己定义端口,Springboot提供了两种方式,第一种,我们可以通过application.yml配置文件配置,第二种,可以通过代码里面指定,在开发中,建议使用修改application.yml的方式来修改端口。
     

    一、pom.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>

        <groupId>com.guoxin</groupId>
        <artifactId>SpringbootTest</artifactId>
        <version>1.0-SNAPSHOT</version>

        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.0.RELEASE</version>
            <relativePath/>
        </parent>

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>

        <build>
            <finalName>SpringBootTest</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     

    二、修改配置文件改端口
    application.yml和properties配置文件一样,但是相对于properties文件更加简约一些。
    application.yml:

    server:
      #端口号
      port: 8888
      #项目名,如果不设定,默认是 /
      context-path: /demo
    1
    2
    3
    4
    5
    application.properties:

    server.port=8081
    server.context-path=/demo
    1
    2


    三、代码指定端口
    方法一:
    这种方式,是通过编码的方式来硬性的指定了端口的配置

    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
    import org.springframework.boot.web.support.SpringBootServletInitializer;

    @SpringBootApplication
    public class ConfigMain extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {  

        @Override  
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {  
            return builder.sources(ConfigMain.class);  
        }  

        @Override  
        public void customize(ConfigurableEmbeddedServletContainer container) {
            //指定项目名称
            container.setContextPath("/demo");
            //指定端口地址
            container.setPort(8081);  
        }

        public static void main(String[] args) {
            SpringApplication.run(ConfigMain.class, args);
        }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    方法二:
    这种方法有springboot版本的限制,1.3.x即以前的好使,1.4.x就不建议使用了(import org.springframework.boot.context.embedded.ServletContextInitializer;ServletContextInitializer被划了黑色的横线,后来发现虽然没报错,但是访问页面却没有,说明不能正常使用),1.5.x即以后就已经没法用了(前面引的包会报错)

    import org.apache.catalina.connector.Connector;
    import org.apache.coyote.http11.Http11NioProtocol;
    import org.springframework.boot.context.embedded.EmbeddedServletContainer;
    import org.springframework.boot.context.embedded.ServletContextInitializer;
    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
    import org.springframework.stereotype.Component;

    @Component
    public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory {
        public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers) {
            this.setPort(8081);
            this.setContextPath("/demo");
            return super.getEmbeddedServletContainer(initializers);
        }

    //    protected void customizeConnector(Connector connector) {
    //        super.customizeConnector(connector);
    //        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
    //        // 设置最大连接数
    //        protocol.setMaxConnections(2000);
    //        // 设置最大线程数
    //        protocol.setMaxThreads(2000);
    //        protocol.setConnectionTimeout(30000);
    //    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     

    四、使用启动命令
    nohup java -jar -Dspring.config.location=application.properties -Dserver.port=8897 dataMq.jar &
    注:即使application.properties文件中设置了server.port=8081,启动端口也是8897
    ————————————————
    版权声明:本文为CSDN博主「小强签名设计」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m0_37739193/article/details/83388271

  • 相关阅读:
    [学习笔记] Symfony2学习笔记之数据库操作 [转]
    [学习笔记] Twig 的 tags学习 [转]
    [学习笔记] 设计模式之状态机模式 [转]
    【转】Lombok介绍、使用方法和总结
    RabbitMQ
    百度云下载不限速方法+软件
    json数据的key的读取和替换
    spring boot配置mybatis和事务管理
    windows强大的快捷键
    rtsp向rtmp推流
  • 原文地址:https://www.cnblogs.com/csjoz/p/15272357.html
Copyright © 2011-2022 走看看