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

seo推广网站有哪四川seo快速排名

seo推广网站有哪,四川seo快速排名,网络系统管理属于什么专业类别,邯郸网站建设公司一 背景 springboot 在启动时候会将系统的环境变量、项目的启动时设置的属性 、application.yml文件(或application.properties文件)、PropertySource定义的配置文件中的属性加载到Environment对象中,分布式配置中心框架也会把配置加载到Env…

一 背景

springboot 在启动时候会将系统的环境变量、项目的启动时设置的属性 、application.yml文件(或application.properties文件)、@PropertySource定义的配置文件中的属性加载到Environment对象中,分布式配置中心框架也会把配置加载到Environment中。而springboot的属性注入即@Value、@ConfigurationProperties、xml文件的${.....},就是从Environment拿的数据,再进行解析的,我们要做的就是对Environment的数据源添加自定义的数据和解析过程中执行我们自定义的解析代码。

二 详细需求

 1 根据配置中的内容,动态的添加自定义的配置

如配置文件中只配置了一个用户的id,启动时根据这个id去获取用户信息,并把获取到的信息添加到springboot的配置中,也就是定制我们自己获取属性的方式。这样启动后就能直接用到这个id对应的用户姓名、性别等数据(不可变的数据,可变的数据就涉及到配置动态刷新了,后面再讲),无需再手动调用接口获取。效果如下

1.1 application.yml文件中配置用户id

user:id: 123

1.2 通过这个用户id “123”来使用这个用户的相关信息

1.2.1 @Value
    @Value("${user.123.name}")private String user123Name;@Value("${user.123.sex}")private String user123Age;
1.2.2 @ConfigurationProperties
@Data
@Component
@ConfigurationProperties(prefix = "user.123")
public class UserConfiguration {/*** 姓名*/private String name;/*** 性别*/private String sex;
}
    @Autowiredprivate UserConfiguration userConfiguration;
1.2.3 Environment
    @Autowiredprivate Environment environment;public void configTest() {String user123Age = environment.getProperty("user.123.sex");String user123Name = environment.getProperty("user.123.name");}

2 自定义属性解析方法

如希望对一个配置文件中的属性执行我们自定义的方法,让实际使用这个属性的时候,用的是这个方法转换后的属性,如我配置了一个加密的属性,想通过一个方法解密,使得使用时就是明文

spring:redis:password: decode(abc123)

这个decode就是我们自定义的方法,方法的入参是一个密文,通过这个abc123可以获取到实际的密码。

具体的使用场景如下

1. 在不改变属性名的情况下,对已有的配置做一个增强比如上述说的解密或者追加、替换一些字符,如整合redis的时候需要的密码,不想直接暴漏到项目中,因为属性名是肯定不能变的(redis根据属性名来找属性的),那么就可以自定义一个解密方法来将他的属性值进行解密。

2.将属性值改为之前不存在的属性,如上述1.2中动态新增的属性,当然可以直接这样用

spring:redis:password: ${user.123.name}

,但如果是在执行org.springframework.context.support.PropertySourcesPlaceholderConfigurer#postProcessBeanFactory后添加进去的,那么springboot会找不到这个user.123.name属性,是会直接报错的(ignoreUnresolvablePlaceholders = false时,默认就是false),所以可以自定义一个函数先越过这个校验,在后面再进行真正的赋值。

spring:redis:password: getPassword(user.123.name)

不过这个场景比较鸡肋,因为只要我们控制好动态新增属性的时机那么就完全可以直接用${...}来替换

http://www.hrbkazy.com/news/44009.html

相关文章:

  • 珠海哪里做网站的国内推广平台有哪些
  • 做seo比较好的网站高明搜索seo
  • 做搜狗手机网站优化网站关键词优化多少钱
  • 投资公司网站源码经典广告语
  • 美团网站做疏通广告十大免费网站推广平台有哪些
  • wordpress柒比贰主题优化公司结构
  • 网站开发背景图模板互动网站建设
  • 营销型网站四大元素电商seo优化是什么
  • 便宜网站建设seo网站优化外包
  • wordpress系统邮件seo优化平台
  • 网站公司简介模板引流软件
  • 银川网站建设联系电话郑州网站网页设计
  • wordpress网站使用教程营销方法有哪些
  • dw做网站背景图片设置铺平北京外包seo公司
  • 做h5网站设计百度推广登陆
  • wordpress 如何维护黑帽seo培训
  • 怎么做app网站ui原型徐州网站优化
  • 成考做那个网站的题比较好广告营销留电话网站
  • 个体户营业执照科研做企业网站吗推广搜索引擎
  • web网站开发的好书软件推广的渠道是哪里找的
  • 注册网站送金币东莞今天新增加的情况
  • 电子商务网站建设与维护实训题库网页制作基础教程
  • 星巴克网站开发票吗网址搜索引擎入口
  • 商务网站建设有哪几个步骤网站的优化seo
  • 网站安全评估怎么做天津网站优化软件
  • 开设赌场罪 网站开发四平网络推广
  • 专业旅游网站建设seo建站优化推广
  • 做网站需要多少钱 百度网络营销有什么特点
  • 深圳品牌网站设计公司seo工资服务
  • 邯郸做淘宝网站免费b站动漫推广网站2023