Spring Boot网络配置之server.address超详细讲解

 更新时间:2025年09月03日 08:21:30   作者:爱的叹息  
在Spring Boot中,我们可以通过配置server.address属性来指定应用程序绑定的IP地址,下面这篇文章主要介绍了Spring Boot网络配置之server.address的相关资料,需要的朋友可以参考下

前言

在Spring Boot配置文件中,server.address用于指定应用绑定的网络接口地址。通过这个配置项,可以控制应用程序监听的IP地址,从而影响外部访问的权限和方式。

示例代码

以下是一个简单的示例,展示了如何在[application.yml](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\target\classes\application.yml)中配置server.address的不同值:

server:
  port: 8089
  address: 0.0.0.0  # 可替换为127.0.0.1、localhost等

配置详解

  • address: 0.0.0.0
    表示应用程序将监听所有网络接口上的连接请求。这意味着可以通过本机的任何IP地址或主机名访问该服务,适用于需要从外部访问的场景。

    // 当配置为0.0.0.0时,Spring Boot会绑定到所有可用的网络接口
    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
        return factory -> {
            factory.setPort(8089); // 设置端口号
            factory.setAddress(null); // null表示绑定到所有接口(即0.0.0.0)
        };
    }
    
  • address: 127.0.0.1address: localhost
    表示应用程序仅监听本地回环地址,只能通过本机访问,无法从其他机器访问。这通常用于开发环境,确保安全性。

    // 当配置为127.0.0.1或localhost时,Spring Boot只会绑定到本地回环接口
    @Bean
    public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {
        return factory -> {
            factory.setPort(8089); // 设置端口号
            try {
                factory.setAddress(InetAddress.getByName("127.0.0.1")); // 明确绑定到127.0.0.1
            } catch (UnknownHostException e) {
                throw new RuntimeException(e);
            }
        };
    }
    
  • 不配置server.address
    如果不显式配置server.address,Spring Boot默认会使用0.0.0.0作为监听地址,除非有其他逻辑导致其选择不同的地址(例如某些安全策略或特定的部署环境)。

不同配置的区别总结

配置值描述外部访问能力
0.0.0.0监听所有网络接口,允许通过任何IP地址或主机名访问支持外部访问
127.0.0.1仅监听本地回环地址,只能通过本机访问不支持外部访问
localhost127.0.0.1,仅监听本地回环地址不支持外部访问
不配置默认行为通常是监听所有网络接口(即0.0.0.0支持外部访问

结论

  • 0.0.0.0:适用于生产环境或需要从外部访问的应用程序。
  • 127.0.0.1localhost:适用于开发环境或需要限制访问的安全场景。
  • 不配置:默认行为通常与0.0.0.0相同,但具体行为可能受部署环境影响。

通过合理配置server.address,可以根据实际需求控制应用程序的网络访问权限,提升安全性和灵活性。

到此这篇关于Spring Boot网络配置之server.address的文章就介绍到这了,更多相关Spring Boot网络配置server.address内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Caching配置缓存过期时间详解

    Spring Caching配置缓存过期时间详解

    SpringCache基于AOP,通过注解实现缓存功能,抽象底层框架,默认使用Redis存储,支持多缓存配置,开启需添加注解,配置缓存项可指定过期时间
    2025-08-08
  • @RequestMapping 如何使用@PathVariable 从URI中获取参数

    @RequestMapping 如何使用@PathVariable 从URI中获取参数

    这篇文章主要介绍了@RequestMapping 如何使用@PathVariable 从URI中获取参数的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 深入了解java中常见的五种比较方法

    深入了解java中常见的五种比较方法

    在程序的世界里面,比较也是必不可少的,通过比较可以确定对象的相对顺序、相等性以及其他比较条件,下面我们就来深入了解一下java中常见的五种比较方法吧
    2023-12-12
  • Spring Boot 4.0对于Java开发的影响和前景

    Spring Boot 4.0对于Java开发的影响和前景

    探索Spring Boot 4.0如何彻底革新Java开发,提升效率并开拓未来可能性!别错过这篇紧凑的指南,它带你领略Spring Boot的强大魅力和潜力,准备好了吗?
    2024-02-02
  • Java 读写锁源码分析

    Java 读写锁源码分析

    这篇文章主要介绍了Java 读写锁的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • 为什么Java开发需要配置环境变量

    为什么Java开发需要配置环境变量

    这篇文章主要介绍了为什么Java开发需要配置环境变量,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • Java单例模式简单示例

    Java单例模式简单示例

    这篇文章主要介绍了Java单例模式,结合实例形式简单分析了java单例模式的定义与使用技巧,需要的朋友可以参考下
    2017-06-06
  • 老生常谈foreach(增强for循环)和for的区别

    老生常谈foreach(增强for循环)和for的区别

    下面小编就为大家带来一篇老生常谈foreach(增强for循环)和for的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java访问权限原理与用法详解

    Java访问权限原理与用法详解

    这篇文章主要介绍了Java访问权限,结合实例形式详细分析了java构造者思想、包、访问修饰符等相关原理、应用与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • Springboot中RedisTemplate设置String、Hash、List过期时间

    Springboot中RedisTemplate设置String、Hash、List过期时间

    本文主要介绍了Springboot中RedisTemplate设置String、Hash、List过期时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-05-05

最新评论