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

vi设计征集信息流优化师是什么

vi设计征集,信息流优化师是什么,什么网站做班服比较好,网站制作简介在Spring框架中,$ 和 # 是两种不同的表达式前缀,用于从不同的来源获取值或执行计算。下面详细解释它们的区别和用法: 一、$ 占位符(Property Placeholder) 1. 作用 从配置文件(如 application.propertie…

在Spring框架中,$# 是两种不同的表达式前缀,用于从不同的来源获取值或执行计算。下面详细解释它们的区别和用法:

一、$ 占位符(Property Placeholder)

1. 作用
  • 配置文件(如 application.propertiesapplication.yml)、环境变量系统属性中获取值。
  • 语法:${property.key}
2. 示例
@Value("${app.name}")        // 从配置文件中获取值
private String appName;      // 对应配置:app.name=MyApp@Value("${server.port:8080}") // 使用默认值(若配置不存在)
private int port;            // 若server.port未定义,默认8080@Value("${JAVA_HOME}")       // 获取系统环境变量
private String javaHome;
3. 配置文件示例
# application.properties
app.name=MyApp
server.port=8081

二、# SpEL表达式(Spring Expression Language)

1. 作用
  • 执行动态表达式计算,支持方法调用、属性访问、算术运算等。
  • 可以引用其他Bean、系统属性或环境变量。
  • 语法:#{expression}
2. 示例
@Value("#{systemProperties['java.version']}")  // 获取系统属性
private String javaVersion;@Value("#{new java.util.Date()}")             // 创建新对象
private Date currentDate;@Value("#{mathService.pi * 2}")               // 引用其他Bean的属性/方法
private double circleLength;@Value("#{environment.getProperty('app.name')}") // 获取环境变量
private String envAppName;@Value("#{'${app.name}'.toUpperCase()}")      // 组合使用:先获取配置值,再转换为大写
private String upperCaseName;

三、核心区别对比

对比项${...}#{...}
名称属性占位符(Property Placeholder)SpEL表达式(Spring Expression Language)
主要用途从配置文件、环境变量获取值执行动态表达式计算
支持计算不支持(只能获取原始值)支持(如 #{1 + 2}, #{bean.method()}
引用其他Bean不支持支持(如 #{dataSource.url}
默认值支持(如 ${key:default}不直接支持(需用 ?: 操作符)

四、常见组合用法

1. 在SpEL中引用配置值
@Value("#{'${app.name}'.toUpperCase()}")  // 先获取配置值,再转为大写
private String upperCaseName;@Value("#{${app.timeout} * 2}")           // 先获取配置值,再进行计算
private long doubleTimeout;
2. 复杂表达式
@Value("#{systemProperties['os.name'].contains('Windows') ? 'C:/temp' : '/tmp'}")
private String tempDir;  // 根据操作系统动态选择临时目录

五、注意事项

  1. 语法错误

    • @Value("${app.name") 缺少右括号,会导致解析错误。
    • 正确写法:@Value("${app.name}")@Value("#{bean.property}")
  2. 转义字符

    • 若需要在值中包含 $#,需使用 \ 转义:
      @Value("\\${literal.value}")  // 注入字符串 "${literal.value}"
      
  3. 生效时机

    • ${...}Bean创建时替换为实际值。
    • #{...}表达式计算时动态求值。

总结

  • ${...}:用于从配置文件、环境变量中获取静态值。
  • #{...}:用于执行动态表达式计算,支持更复杂的逻辑。

在实际开发中,两者经常结合使用,例如先通过 ${...} 获取配置值,再通过 SpEL 进行加工处理。

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

相关文章:

  • 网站建设排行榜青岛网络优化费用
  • 怎么做独立app网站外链发布平台有哪些
  • 怎样找回网站备案密码错误企业网站模板建站
  • 网站建设的前景小说搜索风云榜排名
  • 北京高端网站设计外包公司百度广告投放代理商
  • 广州软件园 网站建设福州seo公司
  • 请大学生做网站crm网站
  • 爱采购seo网站关键词排名优化系统
  • 找做网站技术人员站长之家论坛
  • 如何自建网站服务器拓客软件哪个好用
  • 做动画 的 网站有哪些内容百度上怎么注册店铺地址
  • 网站备案批量查询百度输入法免费下载
  • idea网站开发教程荥阳seo推广
  • 总结网站推广策划思路的内容seo管理工具
  • 网站建设要求企业网站优化
  • 广州哪个大学做网站制作好些的怎么做游戏推广员
  • 移动端h5网站开发框架网络营销是指
  • 连云港做网站最好网站建设的推广渠道
  • 专门做优惠券的网站一键seo提交收录
  • 即墨网站建设哪里有百度网址收录入口
  • 网站建设业务越做越累网络推广外包费用
  • 网站建设文献外链系统
  • 广告建设网站建设手机关键词排名优化
  • 网站建设项目设计书行业关键词词库
  • 杭州企业营销网站建设公司营销推广渠道
  • 装修网站实景图vr怎么做的域名官网
  • 网站建设 武讯科技搜索引擎优化的步骤
  • 网站建设中需求分析说明书网络推广是啥
  • 网站建设毕设营销网络的建设怎么写
  • 网站被攻击的方法北京学电脑的培训机构