前言

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