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

水滴保险官方网站php做的网站手机能看到

水滴保险官方网站,php做的网站手机能看到,广州海珠区房价2023年最新房价,建个网站需要多少钱?Spring中Value的使用详解 1. Value基础用法 作用:将属性值注入到字段、构造函数参数或Setter方法中,支持直接读取配置文件属性或SpEL表达式。 示例1:从配置文件读取属性 // application.properties 或 application.yml app.nameSpringDemo …

Spring中@Value的使用详解


1. @Value基础用法

作用:将属性值注入到字段、构造函数参数或Setter方法中,支持直接读取配置文件属性或SpEL表达式。


示例1:从配置文件读取属性
// application.properties 或 application.yml
app.name=SpringDemo
app.port=8080
@Service
public class ConfigService {// 直接注入配置文件中的属性值@Value("${app.name}")private String appName;@Value("${app.port}")private int port;@Value("${unknown.value:Default}") // 默认值语法private String safeValue;public void printConfig() {System.out.println("App Name: " + appName);System.out.println("Port: " + port);System.out.println("Safe Value: " + safeValue);}
}

注释说明

  • ${key}:从配置文件中读取值,若不存在则抛出异常。
  • ${key:default}:若属性不存在,使用默认值 default

示例2:使用SpEL表达式
@Service
public class SpelService {// 计算表达式值@Value("#{ T(java.lang.Math).random() * 100 }")private double randomValue;// 使用系统属性@Value("#{ systemProperties['os.name'] }")private String osName;// 调用方法返回值@Value("#{ T(java.time.LocalDate).now() }")private String currentDate;public void printSpel() {System.out.println("Random Value: " + randomValue);System.out.println("OS Name: " + osName);System.out.println("Current Date: " + currentDate);}
}

2. @Value支持的数据类型
  • 基本类型String, int, double, boolean 等。
  • 复杂类型:需通过Spring的类型转换器(如 LocalDateListMap)。
  • 集合类型:使用逗号分隔字符串转换为集合:
    app.colors=red,green,blue
    
  @Value("${app.colors}")private List<String> colors; // 自动转换为List<String>

3. @Value的局限性
  • 不能注入Bean实例:只能注入基本类型或可通过转换器解析的类型。
  • 无法处理复杂对象:如注入一个 User 对象需通过 @ConfigurationProperties
  • 静态字段不生效@Value 不能用于静态字段。

4. @Value与@ConfigurationProperties对比
特性@Value@ConfigurationProperties
适用场景简单属性或少量属性注入复杂对象(如配置类)的批量注入
类型安全无(依赖字符串键名)有(绑定到POJO类,编译时检查)
代码简洁性简单场景代码少复杂场景代码更规范
支持集合/嵌套属性需手动转换自动处理嵌套属性(如 prefix.subkey

示例:@ConfigurationProperties替代复杂@Value
# application.properties
app.config.username=admin
app.config.password=secret
app.config.timeout=5000
// 定义配置类
@ConfigurationProperties(prefix = "app.config")
@Component
public class AppConfig {private String username;private String password;private int timeout;// getters/setters
}// 使用配置类
@Service
public class SecurityService {private final AppConfig config;@Autowiredpublic SecurityService(AppConfig config) {this.config = config;}public void printConfig() {System.out.println("Username: " + config.getUsername());}
}

5. 使用建议
  • 优先选择@ConfigurationProperties:当需要注入多个相关配置属性时,通过配置类实现类型安全和可维护性。
  • 使用@Value的场景
    • 快速注入少量简单属性。
    • 需要动态计算值(如SpEL表达式)。
  • 避免的误区
    • 不要在静态字段或常量上使用 @Value
    • 避免注入不存在的属性且无默认值(会导致启动失败)。

总结

@Value 是Spring中轻量级的属性注入方式,适合简单场景,而 @ConfigurationProperties 更适合复杂配置的集中管理。根据需求选择合适的方式,确保代码简洁且易于维护。

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

相关文章:

  • 帝国cms做笑话网站多个端口网站如何做域名重定向
  • 检察网站建设龙华网站建设-信科网络
  • 武都区建设局网站物流公司怎么做网站
  • 网站关键词优化案例辽宁省阜蒙县建设局网站
  • 金融类网站源码电商网站开发技术与维护
  • 怎么建自己的摄影网站weex做网站
  • 山西手机版建站系统开发做一个网站大概多少钱
  • 公司的网站如何建设重庆网站建设模板服务
  • 动力无限网站效果好不好官方网站建设的重要性
  • 电销如何介绍网站建设福田欧曼官方网站
  • 潮州网站推广教程确定网站界面
  • 抖音营销推广方案宁波seo推广方式排名
  • 手机网站导航菜单wordpress自带搜索
  • 建立网站的目标wordpress 关闭警告
  • wordpress上传网站模板wordpress右浮动
  • 制作免费制作个人网站怎么做新闻报道策划案模板范文
  • 装修公司网站建设的意义ps做字幕模板下载网站
  • 建站平台 在线提交表格wordpress这么安装
  • 网站开发最重要的技巧导航网站制作教程
  • 将网站的字体设计成百分比的形式要怎样定义广告公司简介介绍
  • 软文网站开发郑州seo外包阿亮
  • wordpress 手工网站自己如何开网店
  • 宁波培训网站建设wordpress插件不显示
  • 网站建设 落地页天津建站公司模板
  • 奖励软件下载网站网站建设的基本费用
  • 网站建设放电影怎么做免费行情软件app下载安装
  • 如何给自己公司做网站建筑设计地图网站
  • app设计网站模板开源视频网站
  • 个性化的个人网站免费做产品画册的网站
  • 招远专业做网站公司分类信息网站怎么做SEO