- 博客(44)
- 收藏
- 关注
原创 总结hmdp项目中遇到的坑
在上述代码执行时,发生错误,检查后发现redis中已有键名为${CACHE_SHOP_KEY + id}的字符串类型键值对,但是代码中却使用Hash类型进行操作,产生了错误。lua脚本中返回了一个long类型的值,但是在DefaultRedisScript类中,没有指定返回值类型,所以使用了默认的返回值类型(null),导致转换出错。所以要显示指定返回值类型。
2023-07-17 10:28:28
2589
原创 springboot生成的可执行jar运行错误------Failed to configure a DataSource: ‘url‘ attribute is not specified and
图片版文字版。
2023-07-02 20:58:48
1542
原创 关于邮件协议的理解、实验以及java mail的实现
POP3不允许用户在邮件服务器上整理自己的邮件,用户在服务器上不能不同的文件夹,POP3也不允许用户在下载邮件之前读取邮件的部分内容,而IMAP则克服了这些POP3的缺点,说白了就是POP3协议不太愿意让用户直接操作服务器,而IMAP正好客户了这些缺点。3.客户发送一个或多个RCPT命令,包括收件人的邮件地址,RCPT命令的作用是 : 先弄清接收方系统是否已经准备好接收邮件的准备,然后才发送邮件,这样做视为了避免浪费通信资源,不至于发送了很长的邮件以后才知道是因地址错误。当A从B接收邮件,A为服务器。
2023-06-28 01:07:13
2270
原创 Day07
SB就不会使用Jackson中的消息转换器,对时间字符串进行转换,并且SB的转换器默认转换格式为:yyyy-MM-dd T HH:mm:ss,所以无法转换成指定格式。解决方法如下:在参数上添加@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss"),指明时间格式。将这个注解写在类上之后,就会忽略类中不存在的字段。意思是Json对象中出现了showOption属性,但是对应的dto对象中没有这个属性,并且showOption属性没有被。
2023-06-27 16:36:29
507
原创 Day06
说人话就是,浏览器并不认得这是什么类型,也不知道应该如何展示,只知道这是一种二进制文件,因此遇到content-type为application/octet-stream的文件时,浏览器会直接把它下载下来。这个类型一般会配合另一个响应头Content-Disposition,该响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者网页的一部分),还是以附件的形式下载并保存到本地。addSerializer()方法的第一个参数是要序列化的对象类型,第二个参数是序列化器。两种方式的响应头中的。
2023-06-27 14:38:02
82
原创 Day05
会得到一个Object数组,其中的args[0]是MappedStatement对象,存放了被拦截SQL的类型及相关信息。在看了许多文章后,ThreadLocal的原理应该是这样的:每个Thread内部都有一个Map,当使用threadLocal.set()方法时,会先获取当前线程的Map,在把(threadLocal, value)存入map中。根本原因:这个id是Long型,前端解析Long的精度比后端小,当后端传给前端id时,前端会有精度丢失问题。但是可以改变集合中的对象的属性。
2023-06-27 10:13:23
718
原创 Day03
Options注解提供了对广泛开关和配置选项的访问,这些开关和配置选项通常作为属性出现在映射语句中,就是也就是说这个配置了后,它会直接作为属性出现在映射语句中,会覆盖setting中的配置。接口映射器 > setting,同时这setting只对接口映射器生效,接口映射器同样只对自己有效。对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时。使用JDBC的getGeneratedKeys的方法来获取的,而且只有。,在执行添加记录之后可以获取到数据库自动生成的主键ID。
2023-06-16 12:18:18
60
原创 Day02
后端@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面的类)时,会根据json字符串中的key来匹配对应实体类的属性.如果匹配一致且json中的该key对应的值符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。的sql查询会被分页,这个API返回的Page对象保存所有查询出来的对象信息。情景:前端使用json传输数据,后端用实体类接受对象,此时。测试用例1:使用与get请求相同的三种测试用例,成功。
2023-06-16 00:22:30
129
原创 Day01
般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容。配置类可指定多个静态文件映射地址,而配置文件的static-path-pattern只能指定一个。配置类会覆盖配置文件的静态文件的static-path-pattern。下图的backend与front存放静态资源,已知springboot的静态资源映射地址为。2、通过静态方法来返回结果,提高了代码的可重用性。
2023-05-24 23:53:15
67
原创 JDK8以前的日期时间框架
目录1、Date2、SimpleDateFormat3、Calendar1、Date虽然Date中的大部分API已被弃用,但保留了一些APIDate():把当前日期设置为Date对象 long getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此Date对象表示的毫秒数。如果需要调用Date的有参构造器创建对象,需要注意的是,日期的偏移量。举个例子:Date date1 = new Date(2020, 1, 2);相...
2022-05-18 22:59:52
138
原创 String特性
文章目录1、前提知识2、创建String的过程字面量声明new一个字符串对象总结创建过程3、字符串的不可变性1、前提知识Java程序的运行内存中有三个区域堆:存储对象栈:用于存储变量或常量的引用变量常量池:存储字面量2、创建String的过程字符串的创建有两种方式用字面量创建String s = "abc";new一个字符串对象String s = new String("abc");字面量声明先去常量池中,看是否存在这个字面量,如果存在,就把字面量在常量池中的地址返回给引用
2022-05-03 11:35:57
454
原创 Java网络编程复习
文章目录1、网络编程要解决的问题2、Java网络编程1、TCP网络编程2、UDP网络编程3、URL网络编程3、网络编程的阻塞问题1、网络编程要解决的问题如何定位到其他计算机如何稳定的进行传输数据对此提出了三个概念,其中IP与端口组成了套接字(Socket),用于区分计算机上的服务IP地址端口通信协议计算机网络的内容就不在这普及了2、Java网络编程TCP网络编程UDP网络编程URL网络编程1、TCP网络编程Socket类:表示要通信的对象InetAddress类:
2022-05-01 15:19:02
1004
原创 Java---IO复习
文章目录1、IO流分类字节流和字符流的区别节点流和处理流2、抽象基类及IO框架的结构3、IO框架部分了解1、节点流1、文件流构造方法读取方法构造函数读取方法2、处理流1、缓冲流,加快读写操作PS2、转换流----提供字节流与字符流的转换3、标准输入输出流4、打印流5、数据流6、对象流3、RandomAccessFile1、RandomAccessFile简介2、RandomAccessFile方法mode模式4、总结5、应用使用输入流输出流多线程拷贝一份文件使用RandomAccessFile实现多线程下载
2022-04-30 22:43:59
454
原创 File类复习
文章目录1、什么是File类疑惑2、File类常用方法及注意事项1、构造方法PS2、判断操作3、常用查询操作及重命名操作PS4、创建与删除操作PS1、什么是File类在Java中,File类表示文件与文件目录,并且定义了一系列相关的操作。疑惑File类的实例对应的文件或文件目录一定存在吗?答:不一定,File类的实例只是一个存在于堆上的对象,它对应的文件或文件目录不一定存在。2、File类常用方法及注意事项1、构造方法public File File(String pathname);p
2022-04-26 17:41:42
111
原创 多线程复习二
文章目录1、线程安全问题产生的原因2、解决线程安全问题1、Synchronized代码块2、Synchronized同步方法3、总结1、线程安全问题产生的原因多线程共享同一资源cpu对线程的调度,使得每个线程在就绪、阻塞、运行之间随意切换比如当线程1在刚进入方法运行时、立刻变为就绪状态。线程2在此时进入了对同一方法的运行,这时就可能导致线程安全问题的产生。2、解决线程安全问题同步代码块(Synchronized)同步方法1、Synchronized代码块Synchronized(同
2022-04-25 00:27:09
74
原创 多线程复习一
文章目录1、创建多线程2、方法3、线程的生命周期2、就绪、运行、阻塞的区别4、线程的调度1、线程调度策略2、线程的优先级3、优先级set、get方法4、注意点1、创建多线程继承Thread类,重写 run()方法class MyThread extends Thread{ @Override public void run() { for (int i = 0; i < 100; i++) { if (i%2==0) System.ou
2022-04-19 00:13:26
182
原创 mvc:view-controller的理解
1、mvc:view-controller用于重定向与请求转发,能接收post与get请求2、当Controller中有与mvc:view-controller相同的地址,那么就选择Controller处理以下是示例: <mvc:view-controller path="/admin/AdminpasswordRest" view-name="admin/passwordRest"/> @PostMapping("/passwordRest") public Strin
2022-04-10 11:45:46
1234
原创 对于请求转发的理解
今天写项目的时候,遇见一个问题,发现自己对请求转发的理解有些遗忘,特此来复习。 @PostMapping(value = "/doLogin") public String login(User user, Model model){ UsernamePasswordToken userToken = new UsernamePasswordToken(user.getUsername(), user.getPassword()); Subject subject
2022-04-09 13:16:13
247
原创 Map复习
文章目录1、Map部分框架结构2、对于Map实现类的介绍1、Map部分框架结构2、对于Map实现类的介绍1、HashMap是线程不安全的,可以存储值都为null的键值对,2、与之相反,Hashtable作为古老的实现类,它是线程安全的,但是它不可以存储值为null的键值对,否则会报空指针异常。(似乎古老的实现类都是线程安全的?)3、HashMap与Hashtable,键值对存储的位置与添加的位置是不同的,所以它们输出的键值对与存入的顺序不同4、HashMap的子类 LinkedHashMap
2022-04-01 20:10:54
638
原创 Set复习
文章目录1、HashSet特性2、HashSet添加元素的原理1、HashSet特性HashSet底层用数组加链表的方式存储数据,通过对hashCode与equals方法重写,来保证无序性与不可重复性。无序性,指逻辑结构与存储结构不一致,相对于ArrayList而言。比如:hashSet.add(1); hashSet.add(2); hashSet.add(3); hashSet.add(4);ArrayList底层用顺序表存储,存储在数组中的位置就是添加的顺序。但是HashSet底层,根
2022-03-29 09:47:10
961
原创 关于字符转换byte、char、string
文章目录1、左移与右移2、char用byte表示你1、左移与右移1、左移 1、未溢出,转换测试byte b = 0b01110000;//未溢出,转换测试System.out.println(b<<1);//224System.out.println((byte)(b<<1));//-32总结:1、默认左移操作转换后将机器数解释为int2、可用类型转换,取机器数低位,解释为byte或short 
2022-03-20 17:35:15
813
原创 ArrayList复习
文章目录1、常用方法1、常用方法单个元素:增:public boolean add(E e)//Collection删: public E remove(int index)、 public boolean remove(Object o)//Collection改:public E set(int index, E element):返回原来位置的元素查: public E get(int index):返回指定位置的元素插入:void add(int index, E element)
2022-03-17 18:04:45
83
原创 Collection接口复习及相关知识
文章目录1、Colletion的方法2、 迭代器Iterator1、Colletion的方法collection的contains、equals、remove,removeAll会调用obj对象的equals方法,进行比较,所以注意重写equals方法总结:collection中所有涉及比较的方法,都是用集合中元素的equals来实现的添加元素:add删除元素:remove比较元素:equals交:retainAll并:addAll差:removeAllcollection
2022-03-15 10:11:21
122
原创 1、螺旋矩阵
文章目录1、题干2、思路3、解题1、复杂度为O(n^3)1、题干所谓“螺旋方阵”,是指对任意给定的N,将1到N×N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入N×N的方阵里。输入格式: 一个数字N,与一个数字M(N<30,M<900)输出格式: M在N*N的螺旋方阵中的行列数输出样例:1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 结尾无空行2、思路
2022-03-09 22:35:20
817
原创 char类型与其他基本类型的转换
文章目录1、char to 数字类型1、char to 浮点数2、char to 整型 1、运算中转换 2、隐式转换 3、显式转换总结1、char to 数字类型1、char to 浮点数无需类型转换 float a = ‘a’; char i = 'c'; float b = i2、char to 整型 1、运算中转换数字/字符+字符(字符转换为
2022-03-05 20:16:54
2054
原创 mybatis的Invalid bound statement (not found)
其实出现这个问题实质就是mapper接口和mapper.xml文件没有映射起来。常见的错误如下:1.mapper.xml中的namespace和实际的mapper文件不一致这个问题其实很好解决,瞪大眼睛,仔仔细细看看,到底对不对应不就好了嘛2.mapper接口中的方法名和mapper.xml中的id标签不一致这个问题和上个问题解决方法一样,仔细对对嘛,这个再对不出来,面壁思过吧。3.上两步的问题都没有,但是还是不行,可能原因就是,没有构建进去,打开target看看对应的mapper.xml文件在
2022-03-03 23:34:56
76
原创 javaSE--接口
文章目录1、接口与抽象类的不同2、接口中的方法定义1、接口与抽象类的不同接口: 接口是一种规范,用来规定对象的行为,接口与对象是一种‘ is a"的关系。它不是一个类,因为它不能用来描述对象的属性抽象类: 抽象类是一个类;它归纳了具体子类的行为与属性,与对象是一种“has a”的关系。2、接口中的方法定义接口中所有的方法自动是public abstract接口中所有的方法不允许是protected...
2022-03-03 18:15:59
124
原创 ioc容器的启动
文章目录1、spring容器的启动方式2、配置bean的方式1、基于java配置类的配置 1、当配置的JavaBean在同一个Java配置类中 2、当多个bean配置在不同配置类中2、xml配置 1、多个具有依赖关系的bean在不同xml配置文件中配置3、xml配置与java配置类混合使用 1、将xml导入java配置类,用配置类启动容器
2022-03-01 17:11:32
292
原创 JavaSE--枚举类
文章目录1、什么是枚举类、枚举类的使用场景2、如何定义枚举类3、enum定义枚举类的细节4、枚举类的方法1、什么是枚举类、枚举类的使用场景1、枚举类是一组有限常量的集合。2、当类的对象是有限个、确定的,可以将这个类设定为枚举类3、当需要定义一组常量时,使用枚举类。4、可以用枚举类来表示状态。2、如何定义枚举类java5以前的定义public class Condition {//描述枚举类 private final String desc; //枚举类的构造器总是私有的
2022-02-28 22:38:13
331
原创 ioc容器中的bean的id
ioc容器中的bean的id的取名方式有三种:默认(使用@Autowired时)@Qualifier在xml文件中的bean标签内赋值在java代码配置spring的文件中由@Bean标记的方法名作为id1、默认当@Autowired,第一次用类型getBean(Class<T> c)没有找到时,接下来用变量名作为id寻找eg:@Autowiredprivate Student tom;//tom会做为id,当用类型找不到时2、如果根据成员变量名作为id还是找不到be
2022-02-28 21:05:55
1301
原创 MySQL中的if表达式与case表达式
1、Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用。表达式:IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值可以是数字值或字符串值。MySql中的IF表达式,实际上是一个三元运算符。eg:力扣的一道题idnamesexsalary1Am2500
2022-02-28 20:09:48
1170
原创 DELETE语句
1、不能先select出同一表中的某些值,再update这个表(在同一语句中)DELETE FROM Person WHERE id NOT IN ( SELECT MIN(id) as id FROM Person GROUP BY email )所以要通过子表(派生表) DELETE FROM Person WHERE id NOT IN ( select *from (SELECT MIN(id) as id FROM Person GROUP BY email )
2022-02-27 21:57:13
259
原创 mybatis----Could not find resource
1.Could not find resource com/example/dao/StudentDao.xml大多是编译后,sql映射文件没有与对应接口在同一目录下如果用maven,默认不会将xml文件编译进java文件夹里面解决方案是:在我们的pom.xml文件中进行编译的配置:<build> <resources> <resource> <directory>src/main/java</direc
2022-02-23 16:34:29
1315
原创 关于Servlet的init方法调用问题
在Servlet接口中用一个init有参方法init(ServletConfig config)这个方法用于web服务器对Servlet的初始化,当这个Servlet第一次创建实例(第一次被访问)时被调用。抽象类GenericServlet实现了Servlet接口,并且添加了一个无参的调用方法public void init(ServletConfig config) throws ServletException { this.config = config; this.init();
2022-02-22 17:50:14
2346
1
原创 2021.3.1版本idea搭建springMVC项目时出现的问题及解决
搭建项目的jar包版本与idea不一致,导致 java.lang.NoSuchMethodError: 'org.apache.commons.logging.Log org.springframe...原因:引入的spring的jar包为5.3.15版本,但是idea的是5.2.3.RELEASE版本解决:将版本替换为5.2.3.RELEASE版本build项目后,由于存在多个版本的spring jar包,导致以下错误Caused by: java.lang.Illegal.
2022-02-14 18:26:50
480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人