近期Java杂项问题

news2024/11/20 14:37:16

@Data不会为static变量提供get/set
@Data不会为final变量提供set
@ConfigurationProperties加载static静态属性为null的问题
解决:@ConfigurationProperties默认是调用非static Setter方法,把静态的Setter方法的static去掉就可以了
@Value注入静态属性
解决:将@Value注解放在静态Setter方法上

SpringMVC

在这里插入图片描述
默认只认识index.jsp,不认识index.html
如何解决:
1.第一种,使SpringMVC管不到这里,比如将/改为/common等。

    protected String[] getServletMappings() {
        return new String[]{"/common/*"};
    }
// springmvc拦截了所有以"/common"为前缀的请求,在匹配的时候也截掉了"/common",用剩下的"/user/login"匹配controller
// 注意此时,请求接口要加一个/common的头,不然404
// http://127.0.0.1:8080/common/user/login

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("login")
    public Result login(User user){
        return userService.login(user);
    }
}

2.第二种,将index.html放到page文件夹里,之后让SpringMVC放行静态资源。

@Configuration
@ComponentScan({"controller"})
@EnableWebMvc       // 开启 JSON数据转对象的功能
public class SpringMVCConfig implements WebMvcConfigurer{
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/page/**").addResourceLocations("/page/");
    }
}

// 注意: 这里不要使用继承WebMvcConfigurationSupport类的方式,不奏效
// 想使用的话, 要单独再写一个类继承他, 实现addResourceHandlers方法, 然后作为bean, 被SpringMVC扫到

Mybatis返回结果

返回单个实体对象,没有查到数据时返回null。
返回Map类型数据,没有查到数据时返回一个空map(size为0),而不是null。
返回List类型数据,没有查到数据时返回一个空list(size为0),而不是null。

LocalDateTime和时间戳互转

LocalDateTime时间戳(相互转换)
时间戳:从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数
获取时间戳:

// 当前时间戳(单位毫秒, 精确到毫秒) 13位
// 1670597596266
// 1670597596266
// 1670597596266
long p = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
long l = LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
long l1 = System.currentTimeMillis();

// 当前时间戳(单位秒, 精确到秒) 10位
// 1670597596
// 1670597596
long l2 = LocalDateTime.now().toEpochSecond(ZoneOffset.ofHours(8));
long l3 = LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).getEpochSecond();

时间戳转换为LocalDateTime:

LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(时间戳/1000或者10位时间戳, 0, ZoneOffset.ofHours(8));
LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(13位时间戳), ZoneOffset.ofHours(8));
// 转字符串
String createDate = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

System.currentTimeMillis()

以毫秒的方式返回当前时间。请注意,虽然返回值的时间单位是毫秒,但是这个值的粒度取决于底层操作系统并且可能粒度更大。例如,许多操作系统是以几十毫秒为粒度测量时间的。
return 当前时间和1970年1月1日午夜之间的差值,以毫秒来测量。

System.nanoTime()

以纳秒为单位,这个方法只能被用来测量逝去的时间
This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time.
返回值表示自某个固定但任意的起始时间(时间基准点)以来的纳秒数(可能在将来,因此值可能为负数)
The value returned represents nanoseconds since some fixed but arbitrary origin time (perhaps in the future, so values may be negative).
在同一个Java虚拟机实例中,该方法的所有调用都使用相同的某个时间基准点
The same origin is used by all invocations of this method in an instance of a Java virtual machine。other virtual machine instances are likely to use a different origin.
只有当计算从同一个Java虚拟机实例中获得的两个此类值的差值时,才有意义
The values returned by this method become meaningful only when the difference between two such values, obtained within the same instance of a Java virtual machine,is computed.
计算某段代码执行的时间

long startTime = System.nanoTime();
// .... code to be executed
long endTime = System.nanoTime();
long elapsedNanos = endTime - startTime;

使用@Async时的问题

需要注意
启动类上需要开启@EnableAsync
@Async标注的方法,想要起效果,必须是在另一个类中被调用
被标注的方法必须是public
被标注的方法返回值只能为void或者Future
@Transactional和@Async的实现都是基于AOP,AOP的实现是基于动态代理模式,所以被标注的方法需要被动态代理对象调用

截取字符串

// 截取指定字符串之后的数据
String str = "https://***cs.com/test/IMG_20200505_184916.jpg";
str = str.substring(str.indexOf("com/") + 4);
// 截取string1内分隔符string2后的字符串
String uri="/forebuy";
String method = StringUtils.substringAfterLast(uri,"/fore" );
method="buy"

// substringAfter方法取str内, 首次出现分隔符separator后的字符串
// substringAfterLast方法取str内, 最后一个分隔符separator后的字符串

遗留

@Validated
数据库ID生成策略,批量踢人,redis批量删除,视频流
mybatis返回值是null还是空对象,或者空列表
SpringMVC_ServletMappings路径匹配原理
SpringMVC不能访问html
MySQL中bigint类型无法通过year函数直接转换
SpringCache相关注解
SpringBoot整合Cache使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3568平台开发系列讲解(系统优化篇)排查卡顿的工具介绍

🚀返回专栏总目录 文章目录 一、Traceview二、Nanoscope三、systrace四、Simpleperf沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Android底层基于 Linux 内核,像 systrace、Simpleperf 也是利用 Linux 提供的机制实现,因此学习一些 Linux 的基础知识,对于理解这…

D-Wave最新调研!量子计算商业活动和投资不断增长

(图片来源:网络) 加拿大量子计算公司委托高性能计算分析机构Hyperion Research进行了一项研究,以更好地了解量子计算 (QC) 的商业早期采用者所面临的挑战和机遇。这项研究调查了全球范围内的300家目前接触量子计算的企业&#xff…

计算机组成大题分析(六)

假定计算机的主频为 500MHz ,CPI 为4。现有设备A 和 B,其数据传输率分别为2MB/s 和 40MB/s ,对应 I/O 接口中各有一个 32 位数据缓冲寄存器。请回答下列问题,要求给出计算过程。 (1) 若设备 A 采用定时查询 I/O 方式,每…

为什么说函数组件要比类组件好呢,函数组件和类组件的区别你都清楚吗

一、类组件 类组件,顾名思义,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component 如果想要访问父组件传递过来的参数,可通过this.props的方式去访问 在组件中必须实现render方法,在return中返回…

详解c++---类和对象(四)

这里写目录标题const成员再谈构造函数为什么会有初始化列表第一个问题第二个问题第三个问题初始化列表的使用方式即注意事项explicit关键字static成员static修饰类中的变量一些性质static修饰成员函数友元友元函数友元类内部类匿名对象拷贝对象时的一些编译器优化const成员 在…

【知识图谱】(task2)知识图谱表示

note 知识图谱的符号表示方法: 属性图是工业界最常见的图谱建模方法,属性图数据库充分利用图结构特点做了性能优化,实用度高,但不支持符号推理。RDF是W3C推动的语义数据交换标准与规范,有更严格的语义逻辑基础&#x…

dev_III笔记补充

1.在客户端显示form 思路: 想要在客户端显示form必须先把form放在 menu item中,然后通过url地址的方式打开form 步骤: 1.建立form 2.建立Menu Item (特别注意:是display类型, 不是action类型 不是action类型…

【分布式技术专题】「架构设计方案」盘点和总结秒杀服务的功能设计及注意事项技术体系

秒杀应该考虑哪些问题 超卖问题 分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果超卖将严重影响公司的财产利益,因此首当其冲…

python爱心源代码集锦

python爱心源代码集锦 本文目录: 一、代码效果预览索引图 二、爱心源代码集锦 (1)、爱心图形1(弧线型)(显示的文字写在代码里) (2)、爱心图形2(直线型&am…

MySQL 如何优化慢查询?

一、前言 在日常开发中,我们往往会给表加各种索引,来提高 MySQL 的检索效率。 但我们有时会遇到明明给字段加了索引,并没有走索引的Case。 进而导致 MySQL 产生慢查询。 严重场景下,甚至出现主从延迟、数据库拖垮的极端事故。 本…

微服务框架 SpringCloud微服务架构 28 数据同步 28.4 发送mq 消息

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构28 数据同步28.4 发送mq 消息28.4.1 直接开干28 数据同步 28.4 发送mq 消…

《Linux运维实战:使用Percona Backup for MongoDB逻辑备份与恢复Mongodb数据》

一、备份与恢复方案 Percona Backup for MongoDB 是一个开源、分布式和低影响的解决方案,用于MongoDB分片集群和副本集的一致备份。从版本1.7.0开始,Percona Backup for MongoDB支持物理和逻辑备份和恢复,仅支持对逻辑备份进行时间点恢复。 …

UIAutomator测试框架介绍

uiautomator简介 UiAutomator是Google提供的用来做安卓自动化测试的一个Java库,基于Accessibility服务。功能很强,可以对第三方App进行测试,获取屏幕上任意一个APP的任意一个控件属性,并对其进行任意操作,但有两个缺点…

软件测试面试笔试习题参考,你都会了吗?

目录 一、 简答题和应用题: 二、 填空题: 三、 判断题: 四、 选择题: 总结 重点:配套学习资料和视频教学 一、 简答题和应用题: 1. 什么是软件测试? 2. 比较软件测试过程和软件开发过程&a…

基于JavaScript中AES和MD5加密,以及简单二维码的生成

一、加密技术 1、对称加密:单密钥加密。一个密钥可以用来加密也可以用来解密 —- AES 2、非对称加密:有两把密码,公钥(用于加密),私钥(用于解密) 3、摘要算法:把任意长度的输入,根据算法生成一串固定长度…

有环链表入口问题

有环链表入口问题 当快慢指针相遇时,我们可以判断到链表中有环,这时重新设定一个新指针指向链表的起点,且步长与慢指针一样为1,则慢指针与“新”指针相遇的地方就是环的入口。 图片来源:黑马程序员 证明: 设a为起点位置&#xff…

百变郁锦香,开创新典范,深化全球战略布局成就国际高端酒店品质之选

随着消费需求的不断升级,酒店消费场景也进行着多元化的发展,城市高端度假品牌正积极溯源消费需求,寻得品牌文化延伸的可靠路径。同时,各大酒店品牌也加快在市场布局的脚步,希望通过布局城市核心区域获得可持续发展的更…

Python绘制正二十面体

文章目录正二十面体的顶点绘制棱绘制面正二十面体的顶点 正20面体的12个顶点刚好可以分为三组,每一组都是一个符合黄金分割比例的长方形,而且这三个长方形是互相正交的。 所以,想绘制一个正二十面体是比较容易的 import numpy as np from …

大环配体配合物1407166-70-4,NODA-GA-NHS ester,NODA-GA-NHS 酯

●外观以及性质: NODA-GA-NHS ester产物呈固体或粘性液体,取决于PEG分子量,一般为白色固体,双功能大环化合物,大环配体配合物是指由多齿配体与环骨架上的O、N、P、S等多个配位原子形成的环配合物。 NODA-GA-NHS ester …

前端面试题2022-CSS篇

关于前端面试的题,最近整理了一些干货,经常被问到的一些问题,出现频率比较高的问题,如有不足之处,请高调指出,(⭐代表难度,星星越多越难,以次类推)&#xff0…