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

如何套模板做网站外国 网站模板

如何套模板做网站,外国 网站模板,手机建站源码,影楼微网站建设文章目录 目标#xff1a;1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标#xff1a; ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解… 文章目录 目标1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标 ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解到它是可以给对象进行属性注入的,有那么几个前提,yml中有配置,项目中有对应的实体类,用于封装数据且属性名一一对应 我在我的com.example包下创建了一个config的包包中写了这样一个类: import org.springframework.stereotype.Component; import lombok.Data;Component //因为这个类要被Spring管理所以加上注解Component Data public class ServletConfig {private String ipAddress;private int port;private long timeout; }yml中 servers:ipAddress: 192.168.200.140port: 2345timeout: -1我们想为上面的类赋上我们的配置文件的值就需要加上ConfigurationProperties(prefix servers) Component //因为这个类要被Spring管理所以加上注解Component Data ConfigurationProperties(prefix servers) public class ServletConfig {private String ipAddress;private int port;private long timeout; } 验证: 这里选择在引导类中进行测试 import com.example.config.ServletConfig; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext;SpringBootApplication public class ConfigurationLearnApplication {public static void main(String[] args) {//拿到容器对象ConfigurableApplicationContext ctx SpringApplication.run(ConfigurationLearnApplication.class, args);ServletConfig bean ctx.getBean(ServletConfig.class);//拿到这个对象System.out.println(bean);//打印这个对象}} 但是又有一个问题这个bean是我们自定义的bean,这个bean如果不是自定义的呢如果是第三方的bean呢如果这是一个数据源的bean,需要使用第三方bean加载的时候该怎么做呢这就是我们接下来要解决的。 假如我们这里引入一个第三方bean: dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.21/version/dependency然后我们去定义这个第三方bean可以再创建一个配置类但是这里我们就直接使用我们的引导类做演示即可 SpringBootApplication public class ConfigurationLearnApplication {Beanpublic DruidDataSource dataSource() {DruidDataSource dataSource new DruidDataSource();return dataSource;}public static void main(String[] args) {//拿到容器对象ConfigurableApplicationContext ctx SpringApplication.run(ConfigurationLearnApplication.class, args);ServletConfig bean ctx.getBean(ServletConfig.class);//拿到这个对象System.out.println(bean);//打印这个对象DruidDataSource ds ctx.getBean(DruidDataSource.class);//拿到第三方bean对象System.out.println(ds);//打印第三方bean对象} }显示的是这个数据源初始化好以后的值但是只有在druid连接到数据库的时候才会真正的初始化这个属于是懒加载。 我们手动设置一下 Beanpublic DruidDataSource dataSource() {DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(com.mysql.cj.jdbc.Driver);return dataSource;}在main方法中打印即可验证 System.out.println(ds.getDriverClassName());你写什么都可以,因为这里还不是真正的连接.这里是我们自己设置的,我们也可以注入进来通过yml,注入到第三方对象上 datasource: driverClassName: com.mysql.jdbc.Driver456然后我们到引导类中修改一下: SpringBootApplication public class ConfigurationLearnApplication {BeanConfigurationProperties(prefixdatasource)public DruidDataSource dataSource() {DruidDataSource dataSource new DruidDataSource(); // dataSource.setDriverClassName(com.mysql.cj.jdbc.Driver);return dataSource;}public static void main(String[] args) {//拿到容器对象ConfigurableApplicationContext ctx SpringApplication.run(ConfigurationLearnApplication.class, args);ServletConfig bean ctx.getBean(ServletConfig.class);//拿到这个对象System.out.println(bean);//打印这个对象DruidDataSource ds ctx.getBean(DruidDataSource.class);//拿到第三方bean对象System.out.println(ds);//打印第三方bean对象System.out.println(ds.getDriverClassName());} }EnableConfigurationProperties 与 ConfigurationProperties 有什么关系吗? 我们会在SpringBoot中看到大量前面有Enable的东西,我们可以理解为1一种开关,启用那些配置类 在引导类上我们加上这行代码: EnableConfigurationProperties(ServletConfig.class) // 启用配置类 如果有多个可以用 {} 包裹起来结果运行之后发现报错啦! Exception in thread main org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type com.example.config.ServletConfig available: expected single matching bean but found 2: servletConfig,servers-com.example.config.ServletConfigmatching bean but found 2: 为什么会有两个bean? 在我们前面使用SevletConfig这个类的时候我们使用了Component注解,我们把它注释掉,然后EnableConfigurationProperties 是在告诉spring容器,我们现在有一组信息要去加载配置,如果这个东西它不被spring容器管理那它如何加载这些配置呢? 因此,这里自动把Servlet.class注入到了Spring容器中. 小结:ConfigurationPropperties 可以为第三方1bean绑定属性 2.宽松绑定/松散绑定 但是如果我们先在配置文件yml中将datasource改成了dataSource 然后再在ConfigurationProperties(prefix “dataSource”)(改完后) , 会发现报错了绑定不上 ConfigurationProperties对于名称上的绑定其实是非常灵活的,Spring为了满足各种开发者的习惯,它提供了多种名称规范. servers:ipAddress: 192.168.200.140port: 2345timeout: -1配置类: Data ConfigurationProperties(prefix servers) public class ServletConfig {private String ipAddress;private int port;private long timeout; } ipAddress一一对应是能用的. 但其实配置文件中的ipAdress其实是可以改动的.比如:ipaddress,ip_address,ip-address,IPADDRESS,IP_ADDRESS,IP_ADD_R_E_SS,IP_ADD_R_S-S这些都可以,但是主流格式是:ip-address 它有个有趣的名字叫烤肉串模式 注:宽松绑定不支持注解Value引用单个属性的方式 小结: ConfigurationProperties绑定属性支持属性名宽松绑定Value注解不支持松散绑定绑定前缀命名命名规则 3. 常用计量单位绑定 假如我们在yml中有这样的配置: server:timeout: 30000000000这样不太直观,到底多少位,而且单位是什么? 我们下面来解决这个问题: JDK8一系列与单位有关的数据类型,其中有一个专门来描述数据范围的Duration 我们在yml 中加入这样一项: serverTimeOut: 3 然后到配置类中: private Duration serverTimeOut; 这里3 代表什么呢? 3毫秒 我们可以定义单位: DurationUnit(ChronoUnit.SECONDS)private Duration serveTimeout;也可以配置存储容量 dataSize DataSizeUnit(DataUnit.MEGABYTES)//private DataSize dataSize;yml: dataSize: 1024但是也太难阅读啦~ 如果你把dataSize: 10MB 然后把DataSizeUnit去掉 10485760 / 1024 10240 10240 / 1024 10 这样看起来更直观 4.数据校验 如果我们在配置文件中配置的时候本来想配置端口123的一不小心写成了a,那这样就会报错 那我们就需要做格式校验validation 数据校验 开启数据校验有助于系统1安全性,J233规范中JSR303规范定义了一组有关数据校验相关的API 我们只需要使用这个API即可,引入这个坐标 dependencygroupIdjavax.validation/groupIdartifactIdvalidation-api/artifactId/dependency那这套东西相当于什么呢 我们用java链接数据库用到了JDBC技术那问题来了JDBC是一个接口还是实现类呢是一个接口。我们用的是Mysql的驱动这个是实现类JDBC是一个规范而mysql驱动是一个数据库的实现类这里如此。validation是一组接口还需要导入对应的实现依赖 Max(value 8888, message 端口号不能超过8888)Min(value 80, message 端口号不能小于80)private int port;但是很遗憾报错了因为接口给我们了我们没有实现它。就像Servelt是Tomcat实现的JDBC 是mysql驱动实现的现在要用校验框架那实现却没有因此报错。 上面图中有一个such as Hibernate Valiator 这个Hibernate校验器是个什么东西 dependencygroupIdorg.hibernate.validator/groupIdartifactIdhibernate-validator/artifactId/dependency这里我们就是使用hibernate框架提供的校验器做实现类,这样运行后就可以正常运行了。如果我们的配置不符合规定会报错误。 除此之外hibernate也给我们提供了一些东西 这里提供的方法更多 总结 本章最后一节我们讲一个问题配置一个数据库的信息但是一直连不上报的错误是密码错误但是用navicat却能够正常连接这个问题不是数据库的问题而是springboot的问题下面我们来模拟这个问题 datasource:driverClassName: com.mysql.jdbc.Driver7122password: 0127测试类 SpringBootTest class ConfigurationLearnApplicationTests {Value(${servers.ipAddress})private String msg;Value(${datasource.password})private String password;Testvoid contextLoads() {System.out.println(msg);System.out.println(password);}} 忽略上面那个忘记注释了。哈哈哈哈 为什么是87呢如果修改一下配置文件 datasource:driverClassName: com.mysql.jdbc.Driver7122password: 0127那为什么 八进制的格式00-7 十六进制0x(0-9,a-f) 所以懂了叭~这是格式转换问题 小结 注意yml文件中对于数字的定义支持进制书写格式如需要使用字符串请使用引号明确标注
http://www.w-s-a.com/news/59860/

相关文章:

  • 只做黑白摄影的网站网站建设好后给领导作介绍
  • 移动手机网站建设如何做网站地图视频
  • 手工业网站怎么做成都酒吧设计公司
  • .net 网站生成安装文件目录重庆网站建设沛宣网络
  • 怎么做钓鱼网站吗百度免费域名注册网站
  • 如何给网站做外部优化今年国内重大新闻
  • 有没有做生物科技相关的网站弄一个app大概多少钱
  • 五金加工东莞网站建设怎么做网页跳转
  • 淄博网站优化价格wordpress没有小工具
  • 自己搭建服务器做视频网站wordpress发布文章 发布
  • php仿博客园网站阅读分享网站模板
  • 网站宣传的劣势域名注册长沙有限公司
  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013
  • 西餐厅网站模板seo搜索引擎优化ppt
  • 什么做的网站吗wordpress注册可见插件
  • 献县做网站价格可以提升自己的网站
  • 如何修改网站title建设网站只能是公司
  • 网站推广效果怎么样建设工程公司组织架构图
  • 成都制作网站价格表网站安全证书过期怎么办
  • 高校图书馆网站的建设方案湖南常德市
  • 房地产怎么做网站推广wordpress插件汉化下载