当前位置: 首页 > wzjs >正文

济南互联网选号网站宣传页面怎么制作

济南互联网选号网站,宣传页面怎么制作,建设网站德州,宁夏银川做网站的公司Spring Boot属性设置方法及优先级完整说明 官网参考: https://docs.spring.io/spring-boot/3.4-SNAPSHOT/reference/features/external-config.html#features.external-config.files 属性设置方法优先级顺序(从高到低) 命令行参数&#xf…

Spring Boot属性设置方法及优先级完整说明

官网参考:
https://docs.spring.io/spring-boot/3.4-SNAPSHOT/reference/features/external-config.html#features.external-config.files

属性设置方法优先级顺序(从高到低)
  1. 命令行参数--key=value
  2. SpringApplication.setDefaultProperties(默认属性)
  3. 系统属性-Dkey=value
  4. JNDI属性(通过JNDI接口)
  5. 来自java:comp/env的JNDI属性
  6. 操作系统环境变量NAME=value
  7. 随机属性random.*,需启用或显式配置)
  8. 外部配置文件application-{profile}.propertiesapplication.yml
  9. 内部配置文件application-{profile}.propertiesapplication.yml
  10. 外部通用配置文件application.propertiesapplication.yml
  11. 内部通用配置文件application.propertiesapplication.yml
  12. @PropertySource 注解
  13. @Value 注解
  14. @ConfigurationProperties 绑定
  15. Environment 直接获取

代码示例

1. 命令行参数
// 启动命令:java -jar app.jar --name=CommandLine
@Configuration
public class CommandLineConfig {@Value("${name:Default}") private String name; // 默认值为Default@Beanpublic String getName() {return name;}
}

2. SpringApplication.setDefaultProperties
// 启动类中设置默认属性
public static void main(String[] args) {Map<String, Object> defaultProps = new HashMap<>();defaultProps.put("name", "SpringAppDefault");SpringApplication app = new SpringApplication(App.class);app.setDefaultProperties(defaultProps);app.run(args);
}

3. 系统属性
// 启动命令:java -Dname=SystemProp -jar app.jar
@Configuration
public class SystemPropConfig {@Value("${name:Default}") private String name;@Beanpublic String getName() {return name;}
}

4. JNDI属性
// 需要JNDI服务器配置(如Tomcat)
// JNDI绑定示例(需实现JNDI环境):
// Context context = new InitialContext();
// context.bind("java:comp/env/name", "JNDIValue");@Configuration
public class JndiConfig {@Value("${name:Default}") private String name;@Beanpublic String getName() {return name;}
}

5. 操作系统环境变量
# 在操作系统中设置环境变量
export NAME=OsEnvVar
@Configuration
public class OsEnvConfig {@Value("${name:Default}") private String name;@Beanpublic String getName() {return name;}
}

6. 随机属性(random.*
# application.properties
random.name=RandomValue
@Component
public class RandomBean {@Value("${name:Default}") private String name;public String getName() {return name;}
}

7. 外部/内部配置文件(带profile)
# 外部配置文件:application-dev.properties(优先级高于内部文件)
name=ExternalProfile
# 内部配置文件:src/main/resources/application-dev.yml
name: InternalProfile
// 启动时指定profile:
java -jar app.jar --spring.profiles.active=dev

8. @PropertySource
@Configuration
@PropertySource("classpath:custom.properties") // 指定自定义配置文件
public class PropertySourceConfig {@Value("${name:Default}") private String name;@Beanpublic String getName() {return name;}
}
# custom.properties
name=PropertySource

9. Environment 直接获取
@Service
public class EnvironmentService {@Autowiredprivate Environment env;public String getName() {return env.getProperty("name", "Default");}
}

对比表格

方法使用方式优先级适用场景示例代码片段
命令行参数--key=value 启动时指定最高运行时动态覆盖配置java -jar app.jar --name=CommandLine
SpringApplication.setDefaultProperties通过代码设置默认属性(启动类中配置)程序启动前设置默认值app.setDefaultProperties(defaultProps)
系统属性-Dkey=value 启动时指定次之JVM 级别配置java -Dname=SystemProp -jar app.jar
JNDI属性通过JNDI接口绑定(需JNDI服务器支持)较高企业级环境(如Tomcat)中的集中配置new InitialContext().bind("java:comp/env/name", "JNDIValue")
java:comp/env 的JNDI属性通过java:comp/env前缀绑定中高标准化JNDI配置路径@Value("${name}") 绑定到java:comp/env/name
操作系统环境变量操作系统设置环境变量(如export NAME=Value中高跨平台环境变量配置export NAME=OsEnvVar
随机属性(random.*在配置文件中设置random.*前缀的属性中等生成随机值(如密码、密钥)random.name=RandomValue
外部配置文件(带profile)独立于jar的application-{profile}.propertiesapplication.yml中等环境特定配置(如dev/test/prod)src/main/resources/application-dev.properties
内部配置文件(带profile)jar包内的application-{profile}.propertiesapplication.yml中等内置环境配置src/main/resources/application-dev.yml
外部通用配置文件独立于jar的application.propertiesapplication.yml中低通用配置覆盖内部文件src/main/resources/application.properties
内部通用配置文件jar包内的application.propertiesapplication.yml中低基础配置src/main/resources/application.yml
@PropertySource@Configuration类中通过注解指定外部属性文件较低自定义配置文件绑定@PropertySource("classpath:custom.properties")
@Value直接注入字段较低简单单值注入@Value("${name}") private String name;
@ConfigurationProperties绑定POJO对象到配置前缀最低复杂对象配置绑定@ConfigurationProperties(prefix = "user")
Environment通过Environment抽象类获取属性最低需要灵活获取多种属性的场景env.getProperty("name", "Default")

优先级验证示例

假设同时设置以下属性:

  • 命令行参数--name=CommandLine
  • 系统属性-Dname=SystemProp
  • 环境变量export NAME=OsEnvVar
  • 配置文件application.properties 中设置 name=ConfigFile

实际运行时,CommandLine 的值会生效,因为命令行参数的优先级最高。如果移除命令行参数,则系统属性的值 SystemProp 会生效,依此类推。

http://www.dtcms.com/wzjs/364083.html

相关文章:

  • 科技+杭州+网站建设站长查询域名
  • 网站每天1万ip能收入多少搜索词和关键词
  • 最专业的企业营销型网站建设重庆网站搜索引擎seo
  • 做国学类网站合法吗长沙优化网站推广
  • 怎么免费网做百度收录的网站seo实战密码
  • 陕西网站建设电话排行榜软件
  • 石家庄网站建设备案拼多多网店代运营要多少费用
  • 阳山做网站怎么自己开网站
  • 西安在线网站制作百度seo快速排名
  • 浏阳今日疫情朝阳seo推广
  • 怎么查网站是哪家制作公司做的淘宝关键词搜索排名
  • 专门做ui图标的网站新闻今天
  • 网站建设系统认证系统推广手段有哪些
  • 苏州市网站建设临沂百度推广多少钱
  • 网站关键词代码怎么做广州营销型网站
  • 西樵网站建设公司百度搜索引擎竞价排名
  • 静态网站开发考虑什么交换友情链接
  • 做网站前端seo计费怎么刷关键词的
  • 陕西住房城乡建设网站上海知名seo公司
  • 无锡做网站首选众诺竹子建站官网
  • 做暖暖在线获取网站营销活动有哪些
  • 汉南网站建设长沙营销型网站建设
  • 外贸免费p2p网站建设推广方案100个
  • 图片素材网站建设公众号推广费用一般多少
  • 杭州品牌网站建设会计培训机构排名
  • 石家庄网站推广公司陕西seo排名
  • 合肥网站建设多少钱西安企业seo
  • 做网站 视频加载太慢seo搜索引擎优化知乎
  • 中山网站制作设计三一crm手机客户端下载
  • 网站开发实训心得800百度趋势搜索