首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、

SpringBoot读取配置文件的6种方式,包括:通过Environment、@PropertySource、@ConfigurationProperties、

原创
作者头像
刘大猫
发布于 2024-11-05 14:24:16
发布于 2024-11-05 14:24:16
1.8K0
举报

@toc

概述:本文从读取默认配置文件即自定义配置文件入手,去整理了解几种加载方案的区别SpringBoot读取配置文件的几种方式

  1. 测试方式1:通过Environment读取配置信息
  2. 测试方式2:通过@Value注解读取配置信息(推荐使用)
  3. 测试方式3:通过@ConfigurationProperties注解读取配置信息
  4. 测试方式4:通过@PropertySource+@Value注解读取配置信息
  5. 测试方式5:通过@PropertySource+@ConfigurationProperties注解读取配置信息
  6. 测试方式6:通过Properties读取配置信息

总结

结论:无论什么场景都推荐使用@Value注解准备错;其他了解即可。

准备工作

配置文件目录

application.properties

代码语言:java
AI代码解释
复制
server.port=8080
spring.profiles.active=dev

application-dev.properties

代码语言:java
AI代码解释
复制
spring.redis.host=localhost
logging.level.root = info

application-prod.properties

代码语言:java
AI代码解释
复制
spring.redis.port=6379
logging.level.root = warn

my.properties

代码语言:java
AI代码解释
复制
demo.name=cat

案例说明

1)测试方式1:通过Environment读取配置信息

注意点说明:

<font color='red'>注意点1:</font>

Environment是用来读取应用程序运行时的环境变量的类,可以通过key-value的方式读取application.properties和系统环境变量,命令行输入参数,系统属性等.

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    @Autowired
    private Environment environment;
    
	//测试方式1:通过Environment读取配置信息
    @GetMapping("/readApplicationProperties1")
    public Map<String,Object> readApplicationProperties1(){
        Map<String,Object> map = new HashMap<>();
        map.put("port",environment.getProperty("server.port"));
        System.out.println("通过Environment读取配置信息:" + environment.getProperty("server.port"));
        return  map;
    }
}

结果打印:

2)测试方式2:通过@Value注解读取配置信息(推荐使用)

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    @Value("${server.port}")
    private Integer serverPort;

	//测试方式2:通过@Value注解读取配置信息
    @GetMapping("/readApplicationProperties2")
    public void readApplicationProperties2(){
        System.out.println("通过@Value注解读取配置信息:" + serverPort);
    }
}

结果打印

3)测试方式3:通过@ConfigurationProperties注解读取配置信息

注意点说明:

<font color='red'>注意点1:</font>

<font color='red'>@ConfigurationProperties注解用于指定前缀,下方的属性名称必须和要获取的配置信息名称一致,比如必须叫port,否则获取值为null</font>

使用@ConfigurationProperties首先建立配置文件与对象的映射关系,然后在控制器方法中使用@Autowired注解将对象注入.

<font color='red'>注意点2:</font>

<font color='red'>配置生效的两种方式:</font>

<font color='red'>方式1:</font>配置@Component

<font color='red'>方式2:</font>启动类添加@EnableConfigurationProperties(ReadProperties.class)

<font color='red'>总结:注解@Component和注解@EnableConfigurationProperties(ReadProperties.class)是等价的,写一个就行。</font>

<font color='red'>注意点3:</font>

@ConfigurationProperties也可以和@Value和@Bean一起使用,只不过我没写案例。

<font color='red'>注意点4:</font>

@ConfigurationProperties只能加载以application为前缀开头的配置文件,比如application-dev.properties,加载自定义名称配置文件内容无效。

<font color='red'>注意点5:</font>

问题:从上面的示例中,我们可以看到在属性绑定中@EnableConfigurationProperties和@Component的效果一样,那么为啥springboot还要使用这个注解呢?

<font color='red'>答案:</font>当我们引用第三方jar包时,@Component标注的类是无法注入到spring容器中的,这时我们可以用@EnableConfigurationProperties来代替@Component

ReadProperties

代码语言:java
AI代码解释
复制
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 1)注解@ConfigurationProperties中的prefix用于设置前缀
 * 2)下方的属性名称必须和要获取的配置信息名称一致,比如必须叫port,否则获取值为null
 */
@ConfigurationProperties(prefix = "server")//这个注解是用找到类
@Component  //生效的两种方式:方式1:配置@Component,方式2:启动类添加@EnableConfigurationProperties(ReadProperties.class)
@Data
public class ReadProperties {
    private Integer port;
}

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    @Autowired
    private ReadProperties readProperties;

	//测试方式3:通过@ConfigurationProperties注解读取配置信息
    @GetMapping("/readApplicationProperties3")
    public void readApplicationProperties3(){
        System.out.println("通过@ConfigurationProperties注解读取配置信息:" + readProperties.getPort());
    }
}

结果打印

4)测试方式4:通过@PropertySource+@Value注解读取配置信息

注意点说明:

<font color='red'>注意点1:</font>

@PropertySource注解加载指定的属性文件(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和@ConfigurationProperties 和@Bean使用。

<font color='red'>注意点2:</font>

@PropertySource注解可以配合 @Value 和@ConfigurationProperties 和@Bean一起使用,只不过我没写案例。

<font color='red'>注意点3:</font>

使用@PropertySource注解推荐只加载自定义名称的配置文件,不要加载以application为前缀开头的配置文件,比如application-dev.properties,因为重名的key值会被覆盖,这点会在注意点4中着重说明。

<font color='red'>注意点4:(最容易出错)</font>

讲解一个大坑

<font color='red'>补充说明:</font>application-dev.properties中设置logging.level.root = info,而application-prod.properties中设置logging.level.root = warn

<font color='red'>案例说明:</font>application.properties配置文件设置内置spring.profiles.active=dev,用于关联application-dev.properties配置文件,正常代码运行会把application.properties和application-dev.properties配置文件都加载到内存中,但是现在我想创建一个config或者bean,通过@PropertySource注解去注入并打印application-prod.properties中的这个内容:logging.level.root = warn,正确打印logging.level.root的结果应该是warn,因为它是最后加载的,但实际打印结果logging.level.root的值是info,

问题:为什么?为什么打印info,而我想打印的是prod中的值warn

<font color='red'>答案:</font>如图1,你看红色框中你感觉prod在info下载加载,你会觉得prod相同的key会覆盖dev中的值,实际答案真不是这样,详情请看如图2这个人的回答。正常来说生产项目中application-dev.properties和application-prod.properties只会允许使用一个,才不会混用。

<font color='red'>实际真实项目解决方案是:

  • <font color='red'>第1种方案:</font>启动类中配置环境变量也会通过指定dev还是prod生效,所以该案例只是自己的一个想法,实际没太大作用且实际项目也不会允许同时加载dev和prod配置文件。
  • <font color='red'>第2种方案:</font>为了避免重名key被覆盖,我们会让application.properties和application-dev.properties不会存放相同的key内容,即application.properties有一个key,那么application-dev.properties和application-prod.properties中绝不会有这个相同的key内容。
  • <font color='red'>第3种方案:</font>如果非要使用@PropertySource注解注入一个配置文件,那么一定指向自定义名称配置文件,千万不要指向以application-为前缀的配置文件。

<center><font color='red'>如图1</font></center>

<center><font color='red'>如图2</font></center>

<font color='red'>注意点5:</font>

配置文件加载的优先级 > @PropertySource注解注入

ReadProperties2

代码语言:java
AI代码解释
复制
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @Author 211145187
 * @Date 2022/7/20 15:47
 **/
@PropertySource(value = {"application.properties"})
@Component
@Data
public class ReadProperties2 {
    @Value("${server.port}")
    private Integer port;
}

ReadProperties4

代码语言:java
AI代码解释
复制
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @Author 211145187
 * @Date 2022/7/20 15:51
 **/
@ConfigurationProperties(prefix = "spring.redis")//这个注解是用找到类    注意:@ConfigurationProperties无法加载自定义配置问价内容,必须和@PropertySource配合使用才能获取
@Component  //生效的两种方式:方式1:配置@Component,方式2:启动类添加@EnableConfigurationProperties(ReadProperties.class)
@PropertySource(value = {"classpath:application-prod.properties"})
@Data
public class ReadProperties4 {
    private String port;
}

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    @Autowired
    private ReadProperties2 readProperties2;

	//测试方式4:通过@PropertySource+@Value注解读取配置信息
    @GetMapping("/readApplicationProperties4")
    public void readApplicationProperties4(){
        System.out.println("通过@PropertySource注解读取配置信息:" + readProperties2.getPort());
    }
}

结果打印

5)测试方式5:通过@PropertySource+@ConfigurationProperties注解读取配置信息

ReadProperties3

代码语言:java
AI代码解释
复制
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * @Author 211145187
 * @Date 2022/7/20 15:51
 **/
@ConfigurationProperties(prefix = "demo")//这个注解是用找到类    注意:@ConfigurationProperties无法加载自定义配置问价内容,必须和@PropertySource配合使用才能获取
@Component  //生效的两种方式:方式1:配置@Component,方式2:启动类添加@EnableConfigurationProperties(ReadProperties.class)
@PropertySource(value = {"classpath:my.properties"})
@Data
public class ReadProperties3 {
    private String name;
}

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    @Autowired
    private ReadProperties3 readProperties3;

	//测试方式5:通过@PropertySource+@ConfigurationProperties注解读取配置信息
    @GetMapping("/readApplicationProperties5")
    public void readApplicationProperties5(){
        System.out.println("通过@PropertySource+@ConfigurationProperties注解读取配置信息:" + readProperties3);
    }
}

结果打印

6)测试方式6:通过Properties读取配置信息

Controller

代码语言:java
AI代码解释
复制
import com.example.demo.config.ReadProperties;
import com.example.demo.config.ReadProperties2;
import com.example.demo.config.ReadProperties3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 测试读取配置文件的几种方式:
 * @Author 211145187
 * @Date 2022/7/20 14:02
 **/
@RestController
public class ReadApplicationProperties {
    //测试方式6:通过Properties读取配置信息
    @GetMapping("/readApplicationProperties6")
    public void readApplicationProperties6() throws IOException {
        Resource resource = new ClassPathResource("application-prod.properties");
        Properties properties = PropertiesLoaderUtils.loadProperties(resource);
        String root = properties.getProperty("logging.level.root");
        System.out.println("通过xProperties读取配置信息:" + root);
    }
}

结果打印

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Python 远程开机
用 Python 关机你肯定听过或者实践过,那么用 Python 开机呢?这是一个神奇的方法,教你如何用 Python 来开机。
李英杰同学
2019/12/30
1.1K0
c++实现远程开关机「建议收藏」
这两个功能的实现都需要事先对目标主机进行一些设置。其中远程开机需要目标主机主板支持,并且插上网线。部分主机的设置已经写明。另可实现方法:https://www.cnblogs.com/findumars/p/6009474.html
全栈程序员站长
2022/09/05
1.1K0
Java实现远程开关机(网络唤醒)
Java实现远程开关机是做的一个在局域网下实现一台机器对多台机器的开关机控制 远程唤醒实现 是通过电源的一种协议进行控制的,需要知道被唤醒机器的mac地址
全栈程序员站长
2022/09/05
2.2K0
Java实现远程开关机(网络唤醒)
使用.NET实现WOL唤醒远程开机
家居自动化是现代智能家居的重要组成部分,通过将各种设备连接起来,我们可以实现许多便捷的功能,例如远程开机。传统上,我们可以使用远程开机卡实现这一功能,但这种方法有一定的局限性,例如占用主板的PCIe或USB接口,当然开机卡也有自己的优势。在本文中,我们将介绍如何使用软件的方案实现远程开机,并给出.NET的实现方式。
桑榆肖物
2023/10/19
5420
使用.NET实现WOL唤醒远程开机
电脑定时开机方法「建议收藏」
首先开机后按住Delete键,就是平常常用的删除按键(见图1),然后就会进入到BIOS界面。虽然是一个满眼E文的蓝色世界,但不要害怕,没有问题的。 图2 在BIOS设置主界面中选择“Power”选项(见图2),进入电源管理窗口。有些机器是在“Power Management Setup”里面。 图3 默认情况下,“Automatic Power Up(定时开机,有些机器选项为Resume By Alarm)”选项是关闭的,将光标移到该项(见图3),用“Pagedown”键将“Disabled”改为“Enabled”。 图4 此时“Automatic Power Up”选项会弹出一个菜单,里面有三项选择:“Disabled、Every Day和By Date”(见图4),意思是“禁止、每天和指定日期”。对于上班族来说,我们推荐第二项,这时会跳出一个日期和时间设置。 图5 恭喜您,大功已经告成一半了,这时将光标先移到“Time Alarm(开机时间)”上,用“Pageup”、“Pagedown”设定好(见图5)。如果您设定的是制定日期,则还要在“Date Alarm(开机日期)”上做一个设定。当然,不同的主板功能有差异,有的每设置一次,只能使用一次,而有的可以设置一个周期。 图6 最后一步了,这回真的要大功告成了,就是选择“Exit Saving Changes”(见图6),保存并退出,大部分机器都有热键,一般都是F10。接着机器会重新启动,OK,恭喜你,你的机器可以自动上班了。 怎么样,你现在的机器是否可以每天自动开工了呢,当然前提是你也不要迟到呀,否则就算它开机了还是在那里漫长的等待,别指望它能自己干活呦。最后提醒大家一句,就是在周末的时候一定要想着关闭电源,否则周六它还是会按时开机的,虽然可以再设BIOS关闭,但总归没有关闭电源来的容易,您说呢
全栈程序员站长
2022/09/20
5K0
C#实现局域网内远程开机
1、远程开机原理      远程开机Wake on LAN(WOL),俗称远程唤醒,远程唤醒的实现主要是向目标主机发送特殊格式的数据包,是AMD公司制作的MagicPacket这套软件以生成网络唤醒所需要的特殊数据包,俗称魔术包(Magic Packet)。魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址,你可以在任何协议的数据包中填上 "FFFFFFFFFFFF"+连续重复16次的MAC地址,就可利用该协议作出一个使用该协议的MagicPacket。如果远程计算机最后一次关机的时候是
waylon
2018/03/08
2.4K0
C#实现局域网内远程开机
主机远程唤醒配置
WakeMeOnLan,然后添加或者搜索需要唤醒的电脑的ip,mac和主机名称,然后就可以唤醒远程主机了
zls365
2020/08/19
2.8K0
主机远程唤醒配置
如何一键远程开机,远程唤醒功能[通俗易懂]
使用ToDesk 可以在千里之外为您的设备远程进行开机操作 视频教程:https://update.todesk.com/wol.mp4 ToDesk 支持将关机状态下的设备(Windows,macOS,Linux) 唤醒开机. 这需要满足2个条件: 1.开启电脑的 网卡 Wake On LAN 功能 2.您要开机的电脑设备在同一交换机(路由器下), 需要有另外一个ToDesk端在运行. 比如其他的电脑或手机, iPad, Android电视盒子, 或家人的手机 安装一个ToDesk,这样您就可以在千里之外为您的电脑进行远程开机操作. 当电脑关机时,即可 通过 电脑端 或 ToDesk 手机APP 对电脑 使用 远程开机 功能,对设备进行开机操作.
全栈程序员站长
2022/09/05
3.3K0
如何一键远程开机,远程唤醒功能[通俗易懂]
记一次实现远程控制电脑开机过程
先说说为什么有这个想法,比如在游戏首发的时候,想远程控制电脑开始下载;想远程电脑查询电脑 上的资料等等。作为一名IT行业的从业者,在生活和工作中需要电脑的地方很多,我们不能无时无刻把电脑带在身边,但是现在我们身边无时无刻伴随着两样东西:蜂窝网络和手机。因为我的习惯不喜欢电脑长时间的开着,我不用我就关掉,而且我的电脑散热风扇风比较大,我觉得长时间开着影响室内空气质量,所以我就有了远程控制电脑开机的需求,使用蜂窝网络和手机来实现此需求便可以随时随地的控制。
晓晨
2020/10/29
2.9K0
记一次实现远程控制电脑开机过程
linux系统查看网卡是否支持WOL网络唤醒并开启WOL唤醒功能
其中eth0是一般服务器,默认的网卡,但是也有例外,所以先用命令 ifconfig 查看下所有网络设备,找到你的电脑的网卡,像我的就是eno1。
子润先生
2021/06/24
9K0
关机后远程唤醒的配置,简单实现广域网远程开机和连接
出门在外经常需要家里或者办公室电脑里面的资料。通常通过远程桌面等控制类软件连接。当家里没人,没人开电脑就麻烦了,如果让家里电脑始终开着浪费能源,所以远程桌面之前一定要实现远程开机才好。 实现远程开机需要硬件支持,并且做好相关设置。现在多数网卡都能实现远程唤醒功能,如果你的电脑太老,需要自行查看主板和网卡是否支持远程唤醒,电源是否符合ATX2.01的标准。 设置主要三方面:BIOS、系统设置、路由设置。 一、BIOS设置。不同的主板的CMOS略有差异。类似wake on lan\Remote Wake Up等等,请参看下主板说明书即可。我的是华硕主板,在APM Configuration中的 Power on by PCI devices,搞不清楚你的网卡是pci的还是pcie的,就把两个都打开。记得把能源之星给关掉,否则关机后,用于唤醒的设备会被彻底断电就无法远程唤醒了。我这里的是最后一项Energy Star 4.0C Support设置成disabled。
世纪访客
2018/08/02
4.8K0
关机后远程唤醒的配置,简单实现广域网远程开机和连接
ubuntu linux下开启远程唤醒
进入BIOS的Power Management Setup,设置PME Event Wake Up(这其实是一种Wake On PCI Card模式)为 Enabled。注意,有些机器可能为Wake On Lan或Wake On PCI Card。Wake On Lan模式可以在完全关机状态下唤醒,而Wake On PCI Card模式要在深度休眠状态下唤醒。造成这样的区别主要是因为主板的设计不一样,现在的计算机一般都是Wake On PCI Card模式的。
全栈程序员站长
2022/08/26
12.6K0
ubuntu linux下开启远程唤醒
windows,远程开机,远程唤醒(WOL,Wake-on-LAN)
远程唤醒技术(WOL,Wake-on-LAN) 是由网卡配合其他软硬件,通过局域网或广域网实现远程开机的一种技术,配合远程桌面软件的使用,可最大程度的为办公、家庭等的远程操作控制提供便利。这种技术非常适合具有远程网络管理要求的环境,如果有这种要求在选购网卡时应注意是否具有此功能。
全栈程序员站长
2022/09/05
5.7K0
windows,远程开机,远程唤醒(WOL,Wake-on-LAN)
远程开机(外网WOL远程唤醒)「建议收藏」
1.首先,我们要在主板 BIOS 里面设置 WOL 唤醒功能的开关,大部分主板都会支持唤醒
全栈程序员站长
2022/09/05
13K0
远程开机(外网WOL远程唤醒)「建议收藏」
家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?
前言 其实这个专题很久很久之前就想写了,但是一直因为各种原因拖着没动笔。 因为没有资格,也没有钱在一线城市买房 (😂😂😂); 但是在要结婚之前,婚房又是刚需。 我和太太最终一起在一线城市周边的某二线城市买了房。 再之后,一起装修,她负责非电相关,我负责电 网相关的装修。 家庭组网,家庭实验室就这么一步一步随着家庭的组建而组建了起来: 家庭有线无线组网 智能家居 NAS 公网 IP 和 IPv6 Wake Online (WOL) 家庭网络安全 (😂看了防火墙日志,才知道被攻击频率能有多高) 玩转树莓派 组
东风微鸣
2022/12/01
4.2K0
家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?
Python 实现局域网设备查找,获取设备的IP及MAC
为了工作中碰到的一些问题,也是为了好玩,做了一个在局域网中搜索设备(代码中可设定搜索IP的范围),并且获取设备的IP以及MAC地址。用以发送关机和网络唤醒的命令。
matinal
2023/10/13
5320
Python 实现局域网设备查找,获取设备的IP及MAC
WOL开启远程唤醒开机功能笔记
1.CMOS开启PCIE设备唤醒功能即网卡远程唤醒功能有点主板显示wake on lan如:
全栈程序员站长
2022/09/03
2.4K0
WOL开启远程唤醒开机功能笔记
远程开机的一些记录
不同的主板对Wake on LAN功能的称呼不同,比如可能会叫由PCI-E设备唤醒、Power On By PCI-E、Resume By LAN、Enable Wake ON LAN、Wake on LAN等等。电脑主板种类繁多,自行查阅资料。
听闻所见
2024/02/23
3470
远程开机的一些记录
网络唤醒(WOL)全解指南:原理篇
网络唤醒(Wake-on-LAN,WOL)是一种计算机局域网唤醒技术,使局域网内处于关机或休眠状态的计算机,将状态转换成引导(Boot Loader)或运行状态。无线唤醒(Wake-on-Wireless-LAN,WoWLAN)作为 WOL 的补充技术,使用无线网卡去唤醒计算机。网络唤醒在一般的局域网环境里使用有限广播地址(255.255.255.255)即可,由于路由器都不转发目的地址为有限广播地址的数据报,因此在复杂网络情况下通常使用子网定向广播地址。在局域网外唤醒局域网内特定计算机,可以使用路由器的 DDNS 与端口转发。
张高兴
2018/10/09
5.3K0
全方位远程控制计算机(服务器)
这篇文章可以让你实现全面远程远方计算机(服务器),包括远程开关机,同时会在一定程度上让你了解到背后的原理。
乐心湖
2020/07/31
4.5K0
全方位远程控制计算机(服务器)
推荐阅读
相关推荐
Python 远程开机
更多 >
LV.1
北京博文视点资讯有限公司
目录
  • 总结
  • 准备工作
  • 案例说明
    • 1)测试方式1:通过Environment读取配置信息
      • 注意点说明:
    • 2)测试方式2:通过@Value注解读取配置信息(推荐使用)
    • 3)测试方式3:通过@ConfigurationProperties注解读取配置信息
      • 注意点说明:
    • 4)测试方式4:通过@PropertySource+@Value注解读取配置信息
      • 注意点说明:
    • 5)测试方式5:通过@PropertySource+@ConfigurationProperties注解读取配置信息
    • 6)测试方式6:通过Properties读取配置信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档