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

建设一个小说网站网站平台策划书

建设一个小说网站,网站平台策划书,临沂做网站建设找哪家,cvv钓鱼网站怎么做简介 在spring中占位符用${}表示#xff0c;他可以很好的实现将变动的数据与代码分离#xff0c;这部分变化的数据就可以使用配置文件等诸多手段动态配置 spring中的占位符应用的非常广泛#xff0c;比如Value注解 RequestMapping Feign等都支持${} spring为该功能定义了…简介 在spring中占位符用${}表示他可以很好的实现将变动的数据与代码分离这部分变化的数据就可以使用配置文件等诸多手段动态配置 spring中的占位符应用的非常广泛比如Value注解 RequestMapping Feign等都支持${} spring为该功能定义了一个接口 StringValueResolver可以自定义实现类 可以通过beanFactory.addEmbeddedValueResolver()设置自己的解析器 默认占位符解析器 源码解析 在实例化非懒加载单例Bean之前就会设置一个默认的占位符解析器如下 org.springframework.context.support.AbstractApplicationContext#finishBeanFactoryInitialization if (!beanFactory.hasEmbeddedValueResolver()) {beanFactory.addEmbeddedValueResolver(strVal - getEnvironment().resolvePlaceholders(strVal)); }其实就是从环境变量中根据key找到value环境变量上节已经介绍过了,占位符解析代码如下 private final ListStringValueResolver embeddedValueResolvers new CopyOnWriteArrayList();public void addEmbeddedValueResolver(StringValueResolver valueResolver) {this.embeddedValueResolvers.add(valueResolver); }public String resolveEmbeddedValue(Nullable String value) {if (value null) {return null;}String result value;for (StringValueResolver resolver : this.embeddedValueResolvers) {result resolver.resolveStringValue(result);if (result null) {return null;}}return result; }遍历StringValueResolver解析器由于spring默认值添加了一个就是上面的getEnvironment().resolvePlaceholders(strVal)。 大概逻辑就是找一下有没有占位符没有就直接返回原值如果有就环境变量找一下如果没有就使用默认值 值得关注的是并不是找 ${ 开头的而是任意地方可以匹配到就行所有例如 a${b:c}这样都是可以的 占位符定义如下 public static final String PLACEHOLDER_PREFIX ${; public static final String PLACEHOLDER_SUFFIX };public static final String VALUE_SEPARATOR :; // 看是否有默认值resolvePlaceholders最终进入到如下代码 其实就是上节介绍的环境变量最终保存的地方,从环境变量获取 protected T T getProperty(String key, ClassT targetValueType, boolean resolveNestedPlaceholders) {if (this.propertySources ! null) {// propertySources就是上节介绍的各种环境变量操作系统变量启动参数变量配置文件等for (PropertySource? propertySource : this.propertySources) {Object value propertySource.getProperty(key);if (value ! null) {if (resolveNestedPlaceholders value instanceof String) {value resolveNestedPlaceholders((String) value);}logKeyFound(key, propertySource, value);return convertValueIfNecessary(value, targetValueType);}}}return null; }测试 下面我们简单测试下 public static void main(String[] args) {System.setProperty(uri, getOrderId);AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);String value context.getBeanFactory().resolveEmbeddedValue(/api/${uri:xx});System.out.println(value); }输出/api/getOrderId自定义占位符解析 自定义占位符解析只需要实现StringValueResolver就可以了 例如 public static void main(String[] args) {System.setProperty(uri, getOrderId);AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext();context.getBeanFactory().addEmbeddedValueResolver(strVal - {strVal strVal.replaceAll(\\[order]:, );return context.getEnvironment().resolvePlaceholders(strVal);});context.register(AppConfig.class);context.refresh();String value context.getBeanFactory().resolveEmbeddedValue(/api/[order]:${uri:xx});System.out.println(value);}输出/api/getOrderId总结 占位符的解析就到这里了后面我们会介绍spring表达式 欢迎关注学习不迷路
http://www.zqtcl.cn/news/628045/

相关文章:

  • 网站建设与管理专业凡科做的网站好吗
  • wordpress添加变量福州seo网站管理
  • 哔哩哔哩免费网站观看网站制作合同书
  • 自流井移动网站建设建设网站的一般步骤
  • 手机导航网站模板上海低价网站建设
  • 如何开公司注册需要多少钱东莞网站推广优化网上推广公司
  • 新闻门户网站制作教育培训网站开发
  • 网站建设公司哪个好一点最近一周的热点新闻
  • 做最优秀的自己的视频网站佛山搜索引擎优化
  • 六盘水市网站建设免费封面设计在线制作生成
  • 北京快速建站制作公司wordpress wpoptions
  • iis如何建立网站门源县住房和城乡建设局网站
  • 装修素材图片都从什么网站找铁门关网站建设
  • 网站服务器环境不支持mysql数据库免费商标图案logo
  • 以什么主题做网站好wordpress怎么设置404
  • 为什么手机进网站乱码网络营销工具的特点
  • DW怎么做网站下拉菜单网站建设外包网站
  • 手机做兼职的网站设计公司注册记账代理公司
  • 如何在vs做网站建筑工程电影网
  • 甘肃网站开发网站建设自己在家接单
  • 龙岗网站制作资讯福田区龙岗区发布通告
  • 百度如何快速收录网站嘉兴手机建站模板
  • 服务注册中心有哪些给你一个网站你如何做优化
  • 我做网站如何分流客户openwrt 做视频网站
  • 徐州微信网站建设建设工程项目
  • 便宜网站建设公司envision wordpress
  • 网站怎么做百度快照logo网站域名做固定资产怎么处理
  • 2003 iis网站发布工会网站建设管理工作总结
  • 商城网站大概多少钱长沙网站设计公司推荐
  • 海南省交通建设局网站首页做网站开发一般用什么语言