微服务分布式架构基础与实战:基于Spring Boot + Spring Cloud
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 【实例】将端口号改成9090

1.5.1 实例背景

Spring Boot大大简化了所有XML相关的配置,但会集中到application.properties文件或application.yml文件中。

SSM本身需要编写多个配置文件,如applicationContext-server.xml、applicationContext-controller.xml,但事实上此类配置文件让初学者频繁出错,而有经验的程序员不断重复已经做好的部分,让整个项目变得特别臃肿。

而Spring Boot使用已经约定好的配置参数,完成相关配置,若无须更改Spring Boot事先写好的默认值参数,则不需要创建类似文件。

如果想修改默认的配置,如将Spring Boot启动后默认端口号8080更改为9090,就需要新建配置文件application.properties或application.yml,并在配置文件中加上一行代码server.port=9090(该书写方式是在application.properties中的书写方式)。

另外,类似于database相关连接数据库等参数都需要写在application.properties资源配置文件中。application是Spring Boot的一个设计核心,在日常工作中经常使用。

本实例将在1.3节boot_01工程的基础上,集成application.properties资源配置文件。

1.5.2 创建application.properties资源配置文件

如图1-14与图1-15所示,在src/main/resource下新建文件作为Spring Boot的资源配置文件,命名为application.properties。

图1-14

图1-15

注意,此名是Spring Boot约定好的配置文件名,若有更改则Spring Boot无法扫描到配置文件。在前文中使用了Spring Boot的启动类注解@SpringBootApplication,其依靠@EnableAuto-Configuration、@SpringBootConfiguration等相关注解来扫描默认地址下的application.properties资源配置文件,所以更改文件名后无法被正常扫描。

@EnableAutoConfiguration注解:启动Spring应用程序上下文的自动配置,智能装备相关的Spring Bean内容。在装配的过程中,指定容器是否存在哪些Bean、JVM版本,指定路径是否存在指定文件等相关内容。在@EanbleAutoConfiguration注解内部使用了@Import注解,引入EnableAutoConfigurationImportSelector.class类的反射实例。

@Import注解:@Import是Spring的注解,通过导入的方式将实例加入SpringIOC容器中。

EnableAutoConfigurationImportSelector.class实例:EnableAutoConfigurationImport-Selector.class相当于@EnableAutoConfiguration注解接口的实现,只有标记过@EnableAuto-Configuration注解,才能使用Spring Boot相关功能。在EnableAutoConfigurationImportSelector实现类里含有getAnnotationClass()函数,getAnnotationClass()函数将得到所有使用了@EnableAutoConfiguration类的反射Class<?>。此Class<?>最主要的目的是整理整个工程的上下文,方便其他类调用,实现前文所说的@EnableAutoConfiguration注解的作用。

1.5.3 增加资源配置文件中的配置信息

在application.properties资源配置文件中增加管理Spring Boot端口号的配置信息代码如下。

1.5.4 运行结果

运行结果如图1-16所示,从下面日志看到此工程已通过application.properties资源配置文件把微服务的端口号从默认的8080改为9090。Spring Boot大部分配置信息都会存放到application.properties资源配置文件中。

图1-16

1.5.5 实例易错点

1.端口最大限制

端口的数值为无符号short类型,范围为1~65535。在Linux系统中,1~1023范围默认只有Root用户有权限使用,普通用户使用区间范围为1025~65535,约6万。因此将端口设置为99999时将会报错,且无法启动Spring Boot。端口最大限制异常报错信息如下。

2.端口被占用

如果连续启动了两个端口为9090的Spring Boot程序,会出现启动报错且无法正常启动。

端口被占用异常报错信息如下。