java
文章平均质量分 68
T.Y.Bao
see https://bty834.github.io/
展开
-
Java stream流处理常用操作
【代码】Java stream流处理常用操作。原创 2023-05-15 10:22:30 · 190 阅读 · 0 评论 -
Java中的校验:Jsr 303规范和Spring的适配扩展
以上的场景是基于web的,实际上不管是*Jsr 303*规范本身的目的还是*Spring Validation*中提供的*Jsr 303*支持都不仅仅可以做web数据校验,像Swing或Ui层等都可以进行校验。*Spring Validation*更像是一种适配Spring体系的领域建模。原创 2023-02-28 18:08:12 · 569 阅读 · 0 评论 -
SPI机制源码:JDK Dubbo Spring
不管是哪一类,基本结构步骤就是1. 获取类加载器2. 利用类加载器在固定路径加载SPI文件,`ClassLoader#getResources`生成`Enumeration`对象(通常只有一个`URL`)3. 对URL对象实施解析,获取实现类全类名4. 反射实施类加载 `Class#forName` $\rightarrow$ `Constructor#newInstance`原创 2023-02-23 21:15:52 · 468 阅读 · 0 评论 -
会议室使用最长时间-荣耀笔试
荣耀笔试题原创 2022-08-26 10:18:28 · 697 阅读 · 0 评论 -
SpringBoot application.yml/.properties配置文件加载过程
参考:Springboot源码之application.yaml读取过程SpringBoot配置文件一般为application.yml或application.property等,其加载流程在SpringApplication的run()方法中的ConfigurableEnvironment environment = prepareEnvironment(listeners, applicationArguments);中完成,当环境准备好会触发EventPublishingRunListener i原创 2022-03-03 11:54:07 · 2093 阅读 · 0 评论 -
SpringCloud 服务注册之nacos实现
如下图,org.springframework.cloud.spring-cloud-commons包下定义了一系列接口,其中就包括serviceregistry的系列规范,并通过SPI机制去调用接口实现。在该包的META-INF/spring.factories文件中,可以找到EnableAutoConfiguration.class为key的value中有AutoServiceRegistrationAutoConfiguration.class这一项。来看看这个AutoServiceRegis原创 2022-03-02 12:45:35 · 1068 阅读 · 0 评论 -
SpringBoot中@Conditional注解
先放个图,回头补充原创 2022-02-05 20:32:51 · 310 阅读 · 0 评论 -
ApplicationListener和SpringApplicationRunListener的联系
前言ApplicationListener接口属于package org.springframework.context;SpringApplicationRunListener接口属于package org.springframework.boot;从《SpringBoot技术内幕》一书中得知:ApplicationContext通过ApplicationListener监听ApplicationEvent该书实在介绍SpringBoot项目中的SpringApplication.run()原创 2022-02-02 19:44:58 · 1790 阅读 · 1 评论 -
@SpringBootApplication注解及自动装配
@SpringBootApplication结构图如下:首先看看这个比较底层的@Import注解@Import首先来看看该注解的注释说明:Indicates one or more component classes to import — typically @Configuration classes.Allows for importing @Configuration classes, ImportSelector and ImportBeanDefinitionRegistrar i原创 2022-02-01 16:26:54 · 990 阅读 · 0 评论 -
springboot中@EnableAutoConfiguration扫描范围
现象说明只扫描了@EnableAutoConfiguration扫描注解了该注解的MainApplication,而没有扫描该MainApplication所在包的其他类。进一步点开@EnableAutoConfiguration:package org.springframework.boot.autoconfigure;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;im原创 2022-01-16 13:05:22 · 840 阅读 · 1 评论 -
JAVA常见问题解答集合-笔记
How PreparedStatement in Java prevents SQL Injection?Difference between DTO, VO, POJO, JavaBeans?What is object serialization?Why Java needs Serializable interface?When should we implement Serializable interface?Hidden Features of Java序列化理解起来很简单Hidd原创 2021-11-02 11:04:20 · 84 阅读 · 0 评论 -
Mybatis驱动类加载这块是玩明白了~
今天把MyBatis的驱动类加载流程给整得明明白白了,记录一下,以免忘记。步骤一:读取MyBatis配置文件(mybatis-config.xml)并解析,得到<datasource>标签下的一系列信息获得数据源,数据源包括数据库连接池类型,driver、url、username、password这里(有的driver不用配,比如用了HikariCp它会自动检测url配置driver,而且url不叫url,叫jdbcUrl,每个数据源配置不同,具体参见官方);步骤二读取数据源后会获取数据原创 2021-10-16 15:46:35 · 561 阅读 · 0 评论 -
Mybatis动态创建TimescaleDB数据库表
其他部分和正常关系数据库的mybatis过程一样,就是在写mapper.xml文件时需要注意一下:这里我使用DbTable这个类存储一个表的信息,并作为parameterType传入mapper.xml。这里表名以及字段数量名称都是根据DbTable中内容而定(这里表的字段是一个timestamp类型加n个jsonb类型字段)。@Data@Slf4j@AllArgsConstructorpublic class DbTable { // 表名 private String table原创 2021-10-07 17:18:43 · 556 阅读 · 0 评论 -
利用Mybatis向PostgreSQL中批量插入、查询JSON字段
这里我使用的是TimescaleDB,加了一个时间戳字段,不过没差。关于PostgreSQL中Json数据类型的操作,可以参考官网。应用场景介绍将TCP发过来的数据包(通过消息队列发过来)解析出数据(一个数据包含有多帧,一帧中含有多条信息),并和本地规则表的格式对应起来。以JsonLineMsg实体类代表对应的一帧数据:package tsdb.entity;import lombok.AllArgsConstructor;import lombok.Data;import lombok.N原创 2021-09-28 15:09:42 · 3374 阅读 · 1 评论 -
windows 安装、使用 timescaleDB
timescaleDB(下称tsdb)主要用来存储 time-series data,对于这个概念,tsdb官方给出的定义为:Time-series data is data that collectively represents how a system, process, or behavior changes over time.像tsdb这样的时序型数据库利用了time-series data的以下特点:以时间为中心:总有一个timestamp字段;只写不读:几乎都是insert操作最近原创 2021-09-14 19:15:18 · 1230 阅读 · 1 评论 -
java中静态方法可以被继承,不能override
在Java中静态方法可以被继承,但是不能被覆盖,即不能重写。如果子类中也含有一个返回类型、方法名、参数列表均与之相同的静态方法,那么该子类实际上只是将父类中的该同名方法进行了隐藏,而非重写。父类引用指向子类对象时,只会调用父类的静态方法。所以,它们的行为也并不具有多态性。......原创 2021-06-10 15:10:12 · 3397 阅读 · 0 评论 -
浮点数在计算机中的存储
转载于:浮点数在计算机中存储方式对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?答:存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。浮点数存储算术标准IEEE 754。浮点数存储分为3部分:符号位(Sign):000 为正,111 为负数指数位(Exponen转载 2021-06-02 10:46:29 · 542 阅读 · 0 评论 -
foreach、Iterable、Iterator辨析
foreach从官方文档获悉,foreach 语法(糖)是为了取代对一个collection进行迭代器迭代操作而出现的,目的:代码美观、减少出错。始于java 1.5。官网链接:https://docs.oracle.com/javase/8/docs/technotes/guides/language/foreach.html注意: Collection Interface (即我们常说的集合) 不仅包括java.util.Collection还包括java.util.Map,虽然Map 不是一个原创 2021-05-16 16:49:15 · 157 阅读 · 0 评论