TO DO
lombook
@Data = https://projectlombok.org/features/Data
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor = https://projectlombok.org/features/constructor
名称 | 参数 | @NonNull | 其他说明 |
---|---|---|---|
@NoArgsConstructor | 无参数 | 无效 | 主要配合@Data或其他构造方法注解使用 |
@RequiredArgsConstructor | All non-initialized final fields get a parameter, as well as any fields that are marked as @NonNull that aren't initialized where they are declared. | 有效 | 包含在@Data中,构造方法作用域为private |
@AllArgsConstructor | 所有参数 | 有效 |
Jackson
现象:xAxis属性在Json序列化时被解析为xaxis
原因:
jackson默认的字段属性发现规则如下:所有被public修饰的成员变量->所有被public修饰的getter->所有被public修饰的setter。
entity中成员变量一般都是private的,xAxis的getter/setter方法为getXAxis/setXAxis,不符合驼峰命名
解决办法一:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE)
修改字段发现规则 - fieldVisibility为ANY,getterVisibility为NONE
https://www.jianshu.com/p/855654b3b68c
https://www.cnblogs.com/hbbbs/articles/8405719.html
解决办法二:
@JsonProperty(value = "xAxis")
这个方法功能更强大,可以修改为完全不同名称
@JsonInclude(JsonInclude.Include.NON_NULL)
实体类与Json互转的时候 属性值为null的不参与序列化
https://www.baeldung.com/jackson-ignore-null-fields
@Accessors(chain = true)
使用chain属性,setter方法返回当前对象,和@Builder注解作用不同。
https://www.jianshu.com/p/784732369d46
@JsonSerialize
类上
@Entity
@Table(name = "ting_analysis_cluster_ip")
@Table(name = "ting_analysis_ip_util_month_30",
indexes = {@Index(name = "idx_memory_util_max", columnList = "memory_util_max"),
@Index(name = "idx_memory_util_avg", columnList = "memory_util_avg")})
字段上
@Column(nullable = false,length = 255)
// 在LIKE方法中,如果root.get方法获取的属性类型不是String,则需要进行类型转换。
Predicate ipLike = criteriaBuilder.like(root.get("ip").as(String.class), pattern);
Predicate ipIn = root.get("ip").in(collect);
Optional.map()
Optional.flatMap()
Collectors.joining()
Collectors.groupingBy()
Collectors.toMap()
Collectors.summingDouble()
Collectors.collectingAndThen()
.sorted(Collator.getInstance(Locale.CHINA))
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.filter(Objects::nonNull)
.reduce()
.forEach()
.peek()
Comparator.comparing()
Comparator.comparing(Employee::getAge).thenComparing(Employee::getName)
Map.Entry.comparingByValue()
SimpleDateFormat/DateTimeFormatter
CollectionUtils.isEmpty()
StringUtils.isEmpty()
temporal 当时的;
instant adj. 立即的;紧急的;紧迫的 n. 瞬间;立即;片刻
@EnableWebSecurity
@PostAuthorize
模式1:
MySQL + 离线计算
模式2:
纯ClickHouse + 缓存
模式1.5:
ClickHouse + 离线计算(Python计算)
可能存在的模式1.7:
ClickHouse + 表引擎、物化视图
数据维度 -- 静态/动态
数据质量 -- 数据完整度
数据治理 -- 可用性(完整度、覆盖度,包含时间/空间、准确性)
第一天:上午开会, 短会 + 前后端会议
整个称为ArrayList
整个ArrayList
ArrayList称为原始类型。
ArrayList
ArrayList
5、阿里巴巴Java开发手册 - “强制”部分
6、专利部分
7、jmeter工作
8、Spring Boot Actuator 健康检查 审计 统计 监控
功劳 苦劳 敬业 正常 无作为
贡献 创新 思考 核心
信用卡 8.572 x 5.403
倍思100W 2C2A 210g:
8.549 x 5.439 x 3.028
倍思120W 2C1A 217.4g:
9.398 x 5.533 x 3.046
努比亚120W 2C1A 净重232g:
8.685 x 5.635 x 3.136
1.15.2 go版本
Java for Selenium