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

青岛网站制作系统网站页面大小优化怎么做

青岛网站制作系统,网站页面大小优化怎么做,crm系统怎么用,一个网站的建设需要什么东西前言 Spring Boot 官方提供了两种常用的配置文件格式,分别是properties、YML格式。相比于properties来说,YML更加年轻,层级也是更加分明。 1. properties格式简介 常见的一种配置文件格式,Spring中也是用这种格式,语…

前言

Spring Boot 官方提供了两种常用的配置文件格式,分别是propertiesYML格式。相比于properties来说,YML更加年轻,层级也是更加分明。

1. properties格式简介

常见的一种配置文件格式,Spring中也是用这种格式,语法结构很简单,结构为:key=value。具体如下:

userinfo.name=myjszl
userinfo.age=25
userinfo.active=true
userinfo.created-date=2018/03/31 16:54:30
userinfo.map.k1=v1
userinfo.map.k2=v2

上述配置文件中对应的实体类如下:

@Data
@ToString
public class UserInfo {private String name;private Integer age;private Boolean active;private Map<String,Object> map;private Date createdDate;private List<String> hobbies;
}

2.YML格式简介

以空格的缩进程度来控制层级关系。空格的个数并不重要,只要左边空格对齐则视为同一个层级。注意不能用tab代替空格。且大小写敏感。支持字面值,对象,数组三种数据结构,也支持复合结构。
字面值:字符串,布尔类型,数值,日期。字符串默认不加引号,单引号会转义特殊字符。日期格式支持yyyy/MM/dd HH:mm:ss
对象:由键值对组成,形如 key:(空格)value 的数据组成。冒号后面的空格是必须要有的,每组键值对占用一行,且缩进的程度要一致,也可以使用行内写法:{k1: v1, …kn: vn}
数组:由形如 -(空格)value 的数据组成。短横线后面的空格是必须要有的,每组数据占用一行,且缩进的程度要一致,也可以使用行内写法:[1,2,…n]
复合结构:上面三种数据结构任意组合

如何使用

在src/resources文件夹下创建一个application.yml文件。支持的类型主要有字符串,带特殊字符的字符串,布尔类型,数值,集合,行内集合,行内对象,集合对象这几种常用的数据格式。

具体的示例如下:

userinfo:age: 25name: myjszlactive: truecreated-date: 2018/03/31 16:54:30map: {k1: v1,k2: v2}hobbies:- one- two- three- 

上述配置文件对应的实体类如下:

@Data
@ToString
public class UserInfo {private String name;private Integer age;private Boolean active;private Map<String,Object> map;private Date createdDate;private List<String> hobbies;
}

如何从配置文件取值?

一切的配置都是为了取值,Spring Boot也是提供了几种取值的方式,下面一一介绍。

@ConfigurationProperties

这个注解用于从配置文件中取值,支持复杂的数据类型,但是不支持SPEL表达式。
该注解中有一个属性prefix,用于指定获配置的前缀,毕竟配置文件中的属性很多,也有很多重名的,必须用一个前缀来区分下。
该注解可以标注在类上也可以标注在方法上,这也注定了它有两种获取值的方式。

  1. 标注在实体类上
    这种方式用于从实体类上取值,并且赋值到对应的属性。使用如下:
 /*** @Component :注入到IOC容器中* @ConfigurationProperties:从配置文件中读取文件*/
@Component
@ConfigurationProperties(prefix = "userinfo")
@Data
@ToString
public class UserInfo {private String name;private Integer age;private Boolean active;private Map<String,Object> map;private Date createdDate;private List<String> hobbies;
}

标注在配置类中的方法上
标注在配置类上的方法上,同样是从配置文件中取值赋值到返回值的属性中。使用如下:

   /*** @Bean : 将返回的结果注入到IOC容器中* @ConfigurationProperties :从配置文件中取值* @return*/@ConfigurationProperties(prefix = "userinfo")@Beanpublic UserInfo userInfo(){return new UserInfo();}

总结

@ConfigurationProperties注解能够很轻松的从配置文件中取值,优点如下:

支持批量的注入属性,只需要指定一个前缀prefix支持复杂的数据类型,比如List、Map对属性名匹配的要求较低,比如user-name,user_name,userName,USER_NAME都可以取值支持JAVA的JSR303数据校验
注意:@ConfigurationProperties这个注解仅仅是支持从Spring Boot的默认配置文件中取值,比如application.properties、application.yml。

@Value

@Value这个注解估计很熟悉了,Spring中从属性取值的注解,支持SPEL表达式,不支持复杂的数据类型,比如List。使用如下:

    @Value("${userinfo.name}")private String UserName;

如何从自定义配置文件中取值?
Spring Boot在启动的时候会自动加载application.xxx和bootsrap.xxx,但是为了区分,有时候需要自定义一个配置文件,那么如何从自定义的配置文件中取值呢?此时就需要配合@PropertySource这个注解使用了。
只需要在配置类上标注@PropertySource并指定你自定义的配置文件即可完成。如下:

@SpringBootApplication
@PropertySource(value = {"classpath:custom.properties"})
public class DemoApplication {}

value属性是一个数组,可以指定多个配置文件同时引入。
@PropertySource默认加载xxx.properties类型的配置文件,不能加载YML格式的配置文件,怎么破???
如何加载自定义YML格式的配置文件?
@PropertySource注解有一个属性factory,默认值是PropertySourceFactory.class,这个就是用来加载properties格式的配置文件,我们可以自定义一个用来加载YML格式的配置文件,如下:

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.DefaultPropertySourceFactory;
import org.springframework.core.io.support.EncodedResource;import java.io.IOException;
import java.util.Properties;public class YmlConfigFactory extends DefaultPropertySourceFactory {@Overridepublic PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {String sourceName = name != null ? name : resource.getResource().getFilename();if (!resource.getResource().exists()) {return new PropertiesPropertySource(sourceName, new Properties());} else if (sourceName.endsWith(".yml") || sourceName.endsWith(".yaml")) {Properties propertiesFromYaml = loadYml(resource);return new PropertiesPropertySource(sourceName, propertiesFromYaml);} else {return super.createPropertySource(name, resource);}}private Properties loadYml(EncodedResource resource) throws IOException {YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();factory.setResources(resource.getResource());factory.afterPropertiesSet();return factory.getObject();}}

此时只需要将factory属性指定为YmlConfigFactory即可,如下:

@SpringBootApplication
@PropertySource(value = {"classpath:custom.yml"},factory = YmlConfigFactory.class)
public class DemoApplication {

总结

@PropertySource指定加载自定义的配置文件,默认只能加载properties格式,但是可以指定factory属性来加载YML格式的配置文件。

http://www.yayakq.cn/news/923996/

相关文章:

  • wordpress最新版本广州英文外贸seo网站优化
  • 大兴网站定制开发虚拟主机怎么做淘客网站
  • 做海淘网站赚钱吗php wordpress 备份
  • 网站建设补充合同范本广州互邦物流网络优化建站
  • 公司网站后台管理企业建设营销型网站的目的有
  • 四川省建设厅门户网站网站流量是如何计算的
  • 深圳电梯广告制作公司网站深圳市公司网站建设平台
  • 做网站编辑要会什么做流量哪个网站好
  • 做网站的哪里有wordpress精美网站
  • 怎么做一个链接网站网站需要人员
  • 网站优化排名首页免费建站软件哪个好
  • 网站改版怎么弄自助建站竹子
  • 做公司网站怎么做佛山手工活外发加工网
  • 驾考学时在哪个网站做php网站开发经典教材
  • 网站开发知识产权归属wordpress 插件 重置密码
  • 关于网站建设的实训报告昆山规模的网站建设公司有哪些
  • 利用wps做网站秦皇岛建设路小学网站
  • 石家庄做网站裕华区图案设计网
  • 自己做网站前端开发商标设计网排行
  • 微信网站与响应式网站为企业做出贡献的句子
  • 网站设计建升级wordpress5.0无法发布文章
  • 做暖暖在线获取网站咸阳seo培训
  • apache 配置网站地址中国招聘网
  • 成都网站设计优选柚v米科技山东省住房城乡建设厅官网
  • 一学一做看视频网站wordpress中文设置
  • 建站公司用的开源系统搜狗 优化网站
  • 专门做视频的网站有哪些广州网络建设公司
  • 公司网站建设与维护工作计划百度一下百度主页官网
  • 做公司网站要学会什么56m做图片视频的网站是什么
  • 舟山专业做网站免费好用的网站管理系统