- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 vue3透传Attributes
父组件透传了fatherClick、fatherFunction,但子组件emit(‘fatherClick’)使用了fatherClick,所以孙子组件只剩fatherFunction。父组件有prop1,prop2,但子组件defineProps([‘prop1’])把prop1使用了,所以孙子组件只剩prop2;vue3透传Attributes,组件名称上写的事件、style、类名也会生效;点击孙子内部的按钮后,父组件里组件名称上的点击事件onClick也生效了。
2024-11-29 10:12:45
477
原创 flex常用固定搭配
flex简写:flex-grow(项目放大),flex-shrink (项目缩小),flex-basis(项目本身)1、子元素都设置flex: 1;子元素盒子会平分并占满父盒子,使用场景:每个子元素有相同的宽度,平分整个可用空间;全写:flex: 1 1 0%;内容自动放大或缩小占满剩余空间,优先最小的。//或者 height: 200px;2、一个元素宽度(或高度)固定,另一个元素宽度(或高度)自适应。flex:auto 全写:flex: 1 1 auto;
2024-10-23 10:06:05
620
原创 redis笔记2(key\value的设计)
随机淘汰,TTL机制(先淘汰要过期的),LRU:淘汰最近最少使用的(常用);单个redis命令是原子性的,但没在事务上增加任何维持原子性的机制,所以redis的事务执行不是原子性的。redis事务类似“打包的批量执行脚本”,中间失败,前面的不会回滚,后面的也不会停止。设置key时间时,加个定时器,时间到立即删除,不占内存,对cpu不友好。优点:安全性高,损失少,误操作flushall命名,可用AOF恢复。AOF日志是增量日志,不会断电损害,太大时,redis可重写AOF。设置一段时间,统一删除一批过期的。
2024-05-30 17:56:15
415
原创 redis笔记1
set添加、get获取、mset批量添加、mget批量获取,incr整型的key自增,incrby设置自增的值,setnx添加key并且设置值,setex添加值,指定有效期eg:setex name 5 “xiaoxiao”,为名字加“xiaoxiao”,5秒后过期;HSET添加、修改,HGET查,Hmset批量加、HMGET批量查、HGETALL获取所有等。LPUSH左加、LPOP左取,RPUSH右加、RPOP右取等(左是首,右是尾)无序、不可重复、支持交、并、差集等功能。可排序、不重复,排行榜。
2024-05-28 17:34:32
421
原创 JDBC批量处理(addBatch/executeBatch/clearBatch)
(1)addBatch(string):添加批量处理的sql语句或参数。1-操作多条的时候用批量处理,比单条处理效率更高。(2)executeBatch:执行批量处理语句。(3)clearBatch: 清空缓存的数据。(1)多条sql的批量处理。(2)一个sql的批量传参。
2024-05-27 16:09:27
391
原创 连接池笔记\JDBC的API\ACID属性\数据并发问题
选择版本:到maven仓库https://mvnrepository.com/artifact/com.oracle.database.jdbc/,输入mysql-connect(oracle-connect),选择一个后点进详情页,前面数字是数据库的版本号,选择使用多的下载。过程:写java代码,java代码将sql语句发送到mysql服务器,mysql数据库接收sql语句处理,将结果返回。(3)幻读:A读所有,B再插入新的,A再去读,数据变多了。(2)不可重读:A事务先读到的值,被B事务更改了。
2024-05-23 09:08:54
470
原创 状态码406(Not Acceptable) 错误问题解决方法
Data是lombok的注解,用来引入get\set,lombok也可以用来引入无参、有参构造方法。状态码406(Not Acceptable) 错误问题解决方法。因为用了返回的公共结果集类,但是没写get和set。
2024-05-16 09:40:34
562
原创 springboot报错‘url’ attribute is not specified and no embedded datasource could
2、如果有,在application.yml配置文件中修改端口名为7777,再重新运行,看报错提示信息的端口,如果端口不是7777,证明没有进入application.yml,按eclipse的maven-update project勾选force update。1、首先看连接datasource数据库的配置写了没,就是下面代码有没有在配置文件中写。
2024-05-15 14:17:22
503
原创 nginx配置部署
/ proxy_pass /dev-api/是开发环境 /dev-api/是vite.config.js里写的server里proxy ’ /dev-api’ 后台服务地址例如:http://localhost:8080/// proxy_pass /prod-api/是生产环境 后台服务地址例如:http://localhost:8080/// root根路径,nginx部署放置的打包后dist里的文件静态目录。// 监听的端口,代理后前端访问输入的端口。proxy_pass 后台地址;
2024-05-14 10:57:16
629
原创 springboot版本冲突文档
https://docs.spring.io/spring-boot/docs/2.5.7/reference/htmlsingle/#dependency-versions
2024-05-13 11:22:07
137
原创 springBoot笔记五(pom.xml\yml)
6-多环境配置:在application.yml里配置active来开启哪个环境,每个环境用单独文件维护,开发:application-dev.yml。(1)单个获取:@value(“${server.port}”),获取数组的@value(“${list.item[0]}”)(3)定义实体类用@component@configurationProperties(prefix = “server”)1-pom.xml里的start表示会安装已经设置好的相关版本的依赖,起步依赖。5-获取yml里的配置。
2024-05-11 08:45:23
282
原创 springmvc笔记四(拦截器\maven\packaging\profiles)
使用:在父项目的pom.xml文件中写上公共的依赖供引用,用dependencyManagement放可选择的依赖(有的子项目要用,有的子项目不用)浏览器请求->静态(js\css等静态资源)和动态资源,动态资源->过滤器->中央控制器->拦截器->Controller->拦截器。子项目用parent引入父依赖,引入可选依赖,直接写dependency,但是不写版本。8-排除依赖:exclusions,包里的某些依赖不适用,排除掉。11-maven属性,写变量来写版本号,便于维护更改。
2024-05-07 15:46:32
147
原创 springmvc笔记三(@RequestMapping\@requestParams\@PostMapping\json格式\传日期格式\REST\SSM整合)
(3)带时分秒的:用注解@(DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”) Date date)(2)其他日期格式:用注解@(DateTimeFormat(pattern=“yyyy-MM-dd”) Date date)路径名一样通过method判断,GET查,POST(新增、保存)、PUT(修改、更新),DELETE删除。普通请求参数,直接在形参上写,前后端参数名不一样,@requestParams(前端) 类型 后端名。4-json格式(常用)
2024-04-30 17:35:05
189
1
原创 spring笔记二(@Component/@configuration/@Autowired\@Bean \AOP\spring事务)
Component定义bean,在service业务层里@Component直接写为@service,在表现层@Controller,在数据层@Repository。@configuration:把配置内容转为@configuration注解,用于设置当前类为配置类。@Bean 表示是一个bean,@Import导入配置类,只能导一次,多个用数组。原始的方法为连接点,追加功能的为切入点,通知(公共抽取出的东西)通过切面连接。(1)事务管理员:发起事务方,@Transational地方。
2024-04-28 13:38:16
230
原创 spring笔记一(bean/IoC)
7-DI依赖注入:在容器中建立bean与bean依赖关系过程,将有依赖关系的进行绑定。5-IoC:控制反转,用户主动new对象转为程序“外部“提供,目的:解耦。1-Spring framework 底层框架。spring提供了IoC容器,充当“外部”6-Bean:IoC容器创建管理的对象。(1)不能对简单类型操作,用于引用类型。(3)执行属性注入(set操作)(4)执行bean初始化方法。(1)创建对象(分配内存)(1)执行bean销毁方法。8-实现bean的方式。(1)setter注入。
2024-04-26 08:44:21
169
原创 java进阶笔记十二(...args/反射调方法/注解/元注解/Deprecated注解/注解中定义属性)
public static void m(String s, int…(2)属性名是value且只有一个属性时可以省略,直接放属性值。(1)如果注解中有属性,使用时要加(属性名=属性值)(3)属性是数组,如果只有一个值,大括号可省。Target用来标注注解可以出现在哪些位置上。Retention被标记的注解最终保存在哪。修饰符 @interface 名称 {}(4)调用invoke,得到返回值。Override:重写父类方法。用来修饰注解的注解叫元注解。(3)传入方法名,参数。
2024-04-25 10:33:28
401
原创 java进阶笔记十一FutureTaskCallable/wait/notify/relect/路径/资源绑定器/类加载器
当应用加载器有和其他两个重名的类时,会用其他两个加载器里的,比如应用加载器里有String类,java框架里也有String,会使用启动类Java框架里的String,保证安全,称为双亲委派机制。通过反射机制实例化的对象具有更高的灵活性,高级框架的底层实现原理都是采用反射机制,通过配置,不用改java源代码,实例化不同类型的对象。代码运行前,所有类放入jvm,首先通过启动类加载,其他用扩展类加载。一个线程负责生产,一个线程负责消费,生产消费之间达到均衡。java框架里的类通过启动类加载器加载。
2024-04-23 15:57:58
393
原创 java进阶笔记十(多线程/生命周期/getName/setName/currentThread/sleep)
start方法会启动一个分支线程,开辟一个新的栈空间,开好后,start就结束了,线程就启动成功了。(2)调用start后,变成就绪状态,也是可运行状态,有抢夺cpu时间片的权利,执行权。3、多线程并发:启动多个线程,会有多个栈空间,互不干扰,可以提高处理效率。4、main方法结束只代表主线程结束,其他线程可能还在执行。2、线程:一个进程中的执行单元,一个进程有可能多个线程。java中线程之间,堆内存和方法区内存共享,栈内存独立。(5)阻塞状态,遇到阻塞事件后,线程会释放之前占有的。
2024-04-09 15:30:57
108
原创 mybatis-plus笔记BaseMapper/ServiceImpl/IService/@TableName/@TableId@分页模糊查询@导出excel
4、使用mybatisplus时,报错表和视图不存在,是因为框架直接用的类名到数据库找,如果不一致会报错,所以在entity那用@TableName告诉数据库里该表的名字;@TableId,设置别名,就是updateById方法里用的id,但代码里实际用的是userId。2、ServiceImpl 是IService 的实现类,有两个泛型参数,一个参数为BaseMapper 也就是实体Mapper ,一个是实体类。3、IService接口中包含的一系列的dao层交互操作,一般在服务层进行继承操作。
2024-04-07 16:12:03
353
原创 SpringBoot笔记/@Mapper/@RestController/@TableField
一、pom.xml:要安装的依赖,类似package.json,可以切换镜像源为阿里的,提高下载速度。二、application.yml:配置文件,端口\数据库连接。
2024-03-27 09:45:37
144
原创 java进阶笔记九(IO流/FileInputStream/FileOutputStream/复制文件)
(2)所有输出流都实现了java.io.Flushable,都是可刷新的,有flush()方法,将未输出的数据强行输出完(清空管道),输出流在最终输出后,一定要刷新。(1)java.io.closeable接口都是可关闭的,都有close()方法,流使用完一定要关闭,避免占用资源。4、序列化writeObject,序列化多个,放到集合里循坏,反序列化readObject。6、序列化版本号作用:用来区分类,不用自动生成的序列号,手动生成固定的。(1)字节读取,类型不受限制(输入流、输出流)
2024-03-25 15:05:33
873
原创 java进阶笔记八(集合需掌握内容/Properties)
(5)HashMap(存储在hashmap集合key的元素需要重写hascode和equals)(3)HashSet(无序不可重复)(4)TreeSet(有序不可重复)2、主要常用要掌握的集合。(2)向集合中添加元素。1、集合需要掌握内容。
2024-03-14 10:04:08
167
原创 java进阶笔记七(ArrayList/链表数据结构/泛型/增强for循坏/map/hasMap)
将k,v封装到node中,通过hascode得出hash值,通过hash算法算出数组下标,数组下标里没值,直接存入,数组下标有值,对每个key进行equals,如果都返回false,证明是新的,在后面添加,如果equals有true,把该k的value替换。(5)放在hashset的key部分的,以及放在hasset集合中的元素,需要同时重写hasCode和equals方法,可以用source生成。先找下标,下标不存在,直接返回null,下标存在,对比equals,都返回false证明没有,返回null。
2023-12-25 16:56:05
362
原创 java进阶笔记六(集合/list/实现类/集合存储的特点/Collection常用的方法/集合的遍历迭代/list常用方法)
(2)在迭代器循环过程中不能调用集合的remove,因为remove后结构已经发生改变,但循环时没有重新获取,应该使用迭代器的remove。(1)集合是一个容器,一个载体,可以来容纳其他类型的数据,数组就是一个集合,比如查10条数据,会生成10个对象,并放到一个集合里。(4)hashset,底层是hashmap,放到hashset里的元素等同于放到hashMap集合key部分。(7)hashTable底层也是哈希表,线程安全,效率低,使用少。(3)vector,底层是数组,线程安全,效率低,使用较少。
2023-12-22 14:40:05
781
原创 java进阶笔记五(生成随机数Random/枚举enum/异常)
两步(1)继承Exception或runtimeException(2)提供两个构造方法,一个无参,一个带String参。
2023-12-18 14:10:24
144
原创 java进阶笔记四(stringBuffer/StringBuilder/包装类/拆箱/字符串转数字Integer.parseInt/日期处理/数字格式化decimalFormat/BigDecim)
注:转换的字符串日期格式要和SimpleDateFormat指定的日期一致,不然会报异常。(1)定义:为8种基本数据类型准备的包装类,属于引用数据类型,父类是object。(5)获取1970.1.1到当前时间的总毫秒数currentTimeMillis。(3)日期转为字符串SimpleDateFormat.format();(4)字符串转日期SimpleDateFormat.parse();(2)获取某个日期:new Date(毫秒数)(1)获取当前日期:new Date()(4)数字格式化异常。
2023-12-12 14:19:48
403
原创 java进阶笔记三(数组\扩容\拷贝\二维数组\Arrays工具类\字符串的常用方法)
(11)父类型的数组可以存放子类型的元素,如果要调用父类型的方法,直接用父元素,如果要调子类型特有的方法,需要向下转型。新建一个大数组,把小数组的元素拷贝到大数组里。(6)数组中元素类型要统一,比如int数组,只能放int类型的。(2)数组是容器,可以存基本数据类型,也可以存引用数据类型。(4)如果数组存的是对象,存的是对象的引用(内存地址)5表示初始化5个元素的数组,5表示个数,默认值是0。(9)数组中首元素的内存地址做为整个数组的内存地址。(7)数组中存储的元素内存地址是连续的。(10)数组的优缺点。
2023-12-11 13:22:06
372
原创 java进阶笔记二(super关键字\Object\内部类)
(5)转为字符串toString:对象的字符串表示形式重写注重可读性,简洁性,调用类的时候会自动调toString方法。因为时间或内存的关系不一定生效,有建议启动垃圾回收System.gc。判断基础数据类型可以使用==,但是判断对象不可以使用==,因为。(4)垃圾回收器负责调用的方法finalize。使用内部类编写,可读性差,能不用就不用。(1)定义:在类的内部又定义了一个新的类。(3)判断对象是否相等equals。(3)访问父类的构造方法。(1)访问父类的属性。(2)访问父类的方法。,要用equals。
2023-12-07 15:02:05
153
原创 java进阶笔记一(抽象类\接口\extends和implement)
(11)重点内容:非抽象类继承抽象类,必须把里面的抽象方法重写。(1)类与类之间的共同特征,将这些具有共同特征的类再进一步抽象,形成抽象类。(2)由于类本身不存在,所以抽象类无法创建对象,无法实例化。(10)抽象类中不一定有抽象方法,但抽象方法要在抽象类中。(9)抽象方法:没有实现的方法,没有返回的方法。(5)抽象类无法无法实例化,用来被子类继承的。(12)面向抽象编程,符合OCP原则。(7)抽象类的子类仍然可以是抽象类。(8)抽象类有构造方法,给子类使用。接口是完全抽象的,抽象类是半抽象。
2023-12-01 17:27:13
315
原创 java笔记四(this/static/方法覆盖override/final关键字/访问控制权限修饰符)
(1)当某个特征属于类级别的特征,可以提升到整个模版的特征,可以在变量前加static关键字修饰。(3)this不能使用在static的方法中,因为static的方法是直接通过类名调用的,不存在“这个对象”。当父类中的方法不能满足子类的需求,子类有必要将父类中继承过来的方法重新编写,这个过程叫方法重写或方法覆盖。存储在方法区内存中。(3)使用static来定义静态代码块,在类加载时执行,只执行一次,在一个类中可以写多个。(2)重写就是把父类要改的方法复制粘贴,然后改成符合子类需求的方法,执行时走子类。
2023-11-28 15:21:45
737
原创 java笔记三(面向过程/面向对象/封装/扩展/继承/多态/类/内存/空指针异常/eclipse的常用操作/构造方法/参数传递)
因为属性完全暴露给外部使用,不安全,外部使用时可能传入不规范的入参,比如age需要正整数,引用传入的age给成负的,就不符合要求,所以把age改成私有属性,不允许外面随意更改。当new的一个对象被赋值为null时,引用的地址变成了null,找不到,编译会通过,但运行时发生空指针异常。new的对象在堆内存中,引用是一个变量,这个变量保存了java对象的内存地址。(1)变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收机制针对堆内存。引用:是一个变量,通过引用.的方式访问对象,
2023-11-23 13:24:37
892
原创 java笔记二(运算符/逻辑运算符/方法/方法重载/方法递归)
使用:方法功能非常类似的,可以使用方法重载,方法重载就是写功能相似的方法,写一样的名字,通过参数列表找到对应的。(2)当方法在同一个类中,调用可以直接写方法名,当不在一个类中调用时,需要加类名.方法名。(3)方法在执行过程中,在JVM中的分配和内存变化。^:逻辑异或,两边算子只要不一样,结果为true。区别:短路之后的代码不会再运行,逻辑与的还会运行。(1)方法名首字母小写,采用小驼峰,局部变量在方法中声明,在栈中存储。(2)方法重载与什么有关?(3)字符串连接运算符。(4)三元表达式运算符。
2023-11-21 15:40:21
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人