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

网站设计公司请示在招聘网站做销售怎么样

网站设计公司请示,在招聘网站做销售怎么样,设计公司平面设计,wordpress注册会员才能看文章目录 1. 读取配置文件application.yml中内容的方法1.1 Environment1.2 Value注解1.3 ConfigurationProperties 注解1.4 PropertySources 注解#xff0c;获取自定义配置文件中的内容#xff0c;yml文件需要自行实现适配器1.5 YamlPropertiesFactoryBean 加载 YAML 文件1.… 文章目录 1. 读取配置文件application.yml中内容的方法1.1 Environment1.2 Value注解1.3 ConfigurationProperties 注解1.4 PropertySources 注解获取自定义配置文件中的内容yml文件需要自行实现适配器1.5 YamlPropertiesFactoryBean 加载 YAML 文件1.6 各种方式总结 2. 自定义的配置文件如果不使用配置类加载即使放在resources目录下也是获取不到内容的3. 如果两个文件的key重复了以默认配置文件application.yml中的内容为准 配置文件application.yml server:port: 8001 blog:user: name: xinliushijianhome: 徐州work: 上海marathonpb: 4191. 读取配置文件application.yml中内容的方法 1.1 Environment Environment 是 springboot 核心的环境配置接口它提供了简单的方法来访问应用程序属性包括系统属性、操作系统环境变量、命令行参数、和应用程序配置文件中定义的属性等等。 Springboot 程序启动加载流程里会执行SpringApplication.run中的prepareEnvironment()方法进行配置的初始化 使用 Environment 方式来获取配置属性值非常简单只要注入Environment类调用其方法getProperty(属性key)即可 示例代码 import lombok.extern.slf4j.Slf4j; import org.junit.Test;import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.core.env.Environment; import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;import static org.junit.jupiter.api.Assertions.assertEquals;RunWith(SpringRunner.class) SpringBootTest(classes XinJavaDemoApplication.class) Slf4j public class EnvironmentTest {Resourceprivate Environment env;Testpublic void test1() {String port env.getProperty(server.port);System.out.println(port: port);assertEquals(port, 8001);}Testpublic void test2() {String home env.getProperty(blog.user.home);System.out.println(blog.user.home: home);assertEquals(home, 徐州);}} key不存在时执行不会报错value为null 1.2 Value注解 Value注解是Spring框架提供的用于注入配置属性值的注解它可用于类的成员变量、方法参数和构造函数参数上这个记住很重要 在应用程序启动时使用 Value 注解的 Bean 会被实例化。所有使用了 Value 注解的 Bean 会被加入到 PropertySourcesPlaceholderConfigurer 的后置处理器集合中。 当后置处理器开始执行时它会读取 Bean 中所有 Value 注解所标注的值并通过反射将解析后的属性值赋值给标有 Value 注解的成员变量、方法参数和构造函数参数。 需要注意在使用 Value 注解时需要确保注入的属性值已经加载到 Spring 容器中否则会导致注入失败。 只有标注了Component、Service、Controller、Repository 或 Configuration 等容器管理注解的类由 Spring 管理的 bean 中使用 Value注解才会生效。而对于普通的POJO类则无法使用 Value注解进行属性注入。 如果我们想要获取 TestService 类中的某个变量的属性值需要使用依赖注入的方式而不能使用 new 的方式。通过依赖注入的方式创建 TestService 对象Spring 会在创建对象时将对象所需的属性值注入到其中。 key不存在时执行会报错 key不存在时给出默认值执行不会报错结果就是取默认值 示例代码 Value(${blog.user.homeeeee:徐州})private String home;Testpublic void testValue() {System.out.println(home: home);assertEquals(徐州, home);}正常取值 1.3 ConfigurationProperties 注解 ConfigurationProperties注解是 SpringBoot 提供的一种更加便捷来处理配置文件中的属性值的方式可以通过自动绑定和类型转换等机制将指定前缀的属性集合自动绑定到一个Bean对象上 加载原理 在 Springboot 启动流程加载配置的 prepareEnvironment() 方法中有一个重要的步骤方法 bindToSpringApplication(environment)它的作用是将配置文件中的属性值绑定到被 ConfigurationProperties 注解标记的 Bean对象中。但此时这些对象还没有被 Spring 容器管理因此无法完成属性的自动注入。 那么这些Bean对象又是什么时候被注册到 Spring 容器中的呢 这就涉及到了 ConfigurationPropertiesBindingPostProcessor 类它是 Bean后置处理器负责扫描容器中所有被 ConfigurationProperties 注解所标记的 Bean对象。如果找到了则会使用 Binder 组件将外部属性的值绑定到它们身上从而实现自动注入。 创建配置类prefix 属性名 配置key import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration;Data Configuration ConfigurationProperties(prefix blog.user) public class BlogUser {private String name;private String home;private String work;private String marathon;private String nameeeee; }示例代码 Resourceprivate BlogUser blogUser;Testpublic void testConfig() {System.out.println(blogUser: JSONObject.toJSONString(blogUser));System.out.println(nameeeee: blogUser.getNameeeee());}属性名在配置文件中不存在时获取此属性值的时候执行不会报错结果为null 1.4 PropertySources 注解获取自定义配置文件中的内容yml文件需要自行实现适配器 除了系统默认的 application.yml 或者 application.properties 文件外我们还可能需要使用自定义的配置文件来实现更加灵活和个性化的配置。与默认的配置文件不同的是自定义的配置文件无法被应用自动加载需要我们手动指定加载。 PropertySources 注解的实现原理相对简单应用程序启动时扫描所有被该注解标注的类获取到注解中指定自定义配置文件的路径将指定路径下的配置文件内容加载到 Environment 中这样可以通过 Value 注解或 Environment.getProperty() 方法来获取其中定义的属性值了。 当加载.yaml文件时启动项目居然报错了经过一番摸索我发现PropertySources 注解只内置了PropertySourceFactory适配器。也就是说它只能加载.properties文件。 如果想要加载一个.yaml类型文件则需要自行实现yaml的适配器 YamlPropertySourceFactory 而在加载配置时要显示的指定使用 YamlPropertySourceFactory适配器这样就完成了PropertySource注解加载 yaml 文件。 支持.properties文件若是.yml文件则自行实现yaml的适配器否则识别不了Value注解中没给默认值启动时就会报错 增加自定义配置文件 xinliushijian.properties blog.user.name心流时间 blog.user.home徐州 blog.user.work上海 blog.user.marathon: 419xinliu.yml new:year: 2024month: 01day: 04其中用到的Value注解在key不存在时报错启动时 在Value注解中加上默认值执行就不报错了 不通过bean通过new 构造器的方法得到对象获得属性值执行不报错结果为null xinliu.yml文件中的内容识别不到启动时就会报错需要自行实现yaml的适配器 配置类示例代码 import lombok.Data; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.context.annotation.PropertySources; import org.springframework.beans.factory.annotation.Value;Data Configuration PropertySources({PropertySource(value classpath:xinliushijian.properties,encoding utf-8),PropertySource(value classpath:xinliu.yml,encoding utf-8,factory YamlPropertySourceFactory.class) }) public class PropertySourcesConf {Value(${blog.user.home:xuzhou})private String home;Value(${blog.user.nameeee:xinliushijian})private String name;Value(${new.year:2023})private String year;}yaml适配器示例代码 import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.core.env.PropertiesPropertySource; import org.springframework.core.env.PropertySource; import org.springframework.core.io.support.EncodedResource; import org.springframework.core.io.support.PropertySourceFactory;import java.io.IOException; import java.util.Properties;public class YamlPropertySourceFactory implements PropertySourceFactory {Overridepublic PropertySource? createPropertySource(String name, EncodedResource encodedResource) throws IOException {YamlPropertiesFactoryBean factory new YamlPropertiesFactoryBean();factory.setResources(encodedResource.getResource());Properties properties factory.getObject();return new PropertiesPropertySource(encodedResource.getResource().getFilename(), properties);} }测试类示例代码 Autowiredprivate PropertySourcesConf propertySourcesConf;Testpublic void testProp() {System.out.println(propertySourcesConf: JSONObject.toJSONString(propertySourcesConf));System.out.println(nameeeee: propertySourcesConf.getName());System.out.println(year: propertySourcesConf.getYear());}1.5 YamlPropertiesFactoryBean 加载 YAML 文件 我们可以使用 YamlPropertiesFactoryBean 类将 YAML 配置文件中的属性值注入到 Bean 中。 配置类 import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.io.ClassPathResource;import java.util.Objects;Configuration public class MyYamlConfig {Beanpublic static PropertySourcesPlaceholderConfigurer yamlConfigurer() {PropertySourcesPlaceholderConfigurer configurer new PropertySourcesPlaceholderConfigurer();YamlPropertiesFactoryBean yaml new YamlPropertiesFactoryBean();yaml.setResources(new ClassPathResource(xinliu.yml));configurer.setProperties(Objects.requireNonNull(yaml.getObject()));return configurer;} }可以通过 Value 注解或 Environment.getProperty() 方法来获取其中定义的属性值。 1.6 各种方式总结 我们可以通过 Value 注解、Environment 类、ConfigurationProperties 注解、PropertySource 注解等方式来获取配置信息。 其中Value 注解适用于单个值的注入而其他几种方式适用于批量配置的注入。不同的方式在效率、灵活性、易用性等方面存在差异在选择配置获取方式时还需要考虑个人编程习惯和业务需求。 如果重视代码的可读性和可维护性则可以选择使用 ConfigurationProperties 注解如果更注重运行效率则可以选择使用 Environment 类。总之不同的场景需要选择不同的方式以达到最优的效果。 2. 自定义的配置文件如果不使用配置类加载即使放在resources目录下也是获取不到内容的 自定义文件xinliushijianhaha.yml newnew:year: 2024month: 01day: 04测试结果 3. 如果两个文件的key重复了以默认配置文件application.yml中的内容为准 application.yml中的配置 自定义配置文件有用配置类自动加载xinliu.yml 测试结果 结果分析 application.yml这种默认的配置文件中的key和自定义配置文件中的key相等时以application.yml中的内容为准当配置内容是数字时前面的0会消失value是04得到的结果是4自动减去了0 引用
http://www.dnsts.com.cn/news/78791.html

相关文章:

  • vs网站模板网上怎么做宣传啊
  • 全国网站建设大赛网站建设费走什么费用
  • 如何建网站老鱼网seo优化软件
  • 有哪几个网站可以做贸易html5自适应网站模版
  • 厦门市建设工程在哪备案网站湛江网站建设服务
  • 哈尔滨自主建站模板东营企业自助建站
  • 网优 是什么网站网站代码的重点内容是什么
  • 临沂品牌网站建设公司网站多个页面要加引导
  • 天津电子商务网站怎样学做网站
  • 网站信息备案变更 哪里做如何申请建设网站首页
  • 高端网站设计报价表wanwang
  • 大学学校网站建设方案简单小网站
  • 黑帽seo怎么做网站排名制作网页的图片
  • 网站简单设计网站两侧对联广告图片
  • 河南平顶山网站建设公司南昌百度推广公司
  • 南雄市建设局网站博物馆建设网站
  • 尤溪建设局网站建设银行北海分行网站
  • 三网合一 营销型网站有什么好的网站可以接单子做
  • 天王手表官方网站免费域名注册2023
  • 广州品牌网站china东莞seo
  • 南山建设网站现在最新技术有哪些
  • 如何利用源码做网站wordpress 画图插件
  • 建筑认证四川网站seo
  • 怎么做点播网站wordpress页面设置方法
  • 天津免费做网站山东seo优化
  • 做网站参考文献男女做暧昧视频网站
  • 公司搭建网站昆山网站建设昆山
  • 珠海网站建设技术外包专业做域名的网站
  • 哈尔滨网站基础优化公众号1000粉丝月收入
  • 不良网站举报中心官网在相亲网站做红娘