解决TypeError: ForwardRef._evaluate() missing 1 required 在GitHub上发现有用户留言也是出现这种问题,但是回复说这个可能是python3.12.4版本的bug,目前没有直接的解决方式,只有通过降级处理,所以重新下载了python3.12.3版本,然后解决了这个问题。注意重新安装版本的时候,如果原有在用项目,或者环境问题,需要区分,尽可能让自己的电脑只使用一个环境,或者使用管理组件去管理环境,否则容易出现各种各样的组件报错。
解决ModuleNotFoundError: No module named ‘distutils‘ 使用python组件过程中,可能有些时候兼容问题。也可能是其他问题,网上查阅了下,也可能是跟python的版本相关,这边使用的是3.12.4,较新的版本,但是实际上我是在使用har2case组件的时候才弹出的错误,之前正常使用大部分组件没有错误。经过查阅资料,说切换或安装一个低版本的distutils组件可以解决,但是我这里实际上还不清楚使用到的组件到底是什么。
(最新亲测有效)python中操作json文件追加数据 一、前言 最近想用json存储接口关联的变量数据,查了一下网上许多伙伴的文章,最后总是某个地方容易报错。最后发现还是大部分网友摘抄别人的细节问题,所以自己记录一下。二、操作流程 这里我也是初学者自学,暂时了解到的一些内容,想先让大家清楚一下,首先python中对文件操作的模式中(r、w、a、rb、r+等等),其实默认情况下是无法直接对json文件进行追加的操作,因为json具备有固定的json格式,常用文件操作模式中,追加模式的指针会放置于文件内容的开头或者末尾,
IDEA常用插件推荐 对数据的表生成 entity、controller、service、dao、mapper 无需任何编码。非常方便进行 mapper 接口和 xml 文件之间跳转。能帮助开发者快速生成类、方法、属性等中文javadoc。RESTful Web 服务辅助开发工具。一键生成对象属性的 set,get 方法。解决 Maven 依赖冲突问题。阿里巴巴 Java 代码规范。Git 提交代码格式规范。
java的异步执行方式 - @EnableAsync和@Async注解 通过这类注解执行异步调用,其实底层是通过生成代理对象去操作了多线程(底层就是多线程原理,运用了Executors),所以对应的,会存在一些失效情况(例如同类中,没有加@Async的方法调用了需要异步执行的@Async方法),这类失效情况与@Transactions基本雷同,可以理解为只要被调用对象的代理对象失效,那么方法执行就会变成单线程。@Async注解可以放置于类上,会表示该类下的所有方法都会是异步的,也可以放置于指定方法上,该方法被调用时会异步执行。一般来说,常用的异步调用方式可以分为以下几种。
设置SSHkeys多服务器免登录配置(ssh config) 基于背景情况,需要选择多个账号或者多服务器时,就要使用自定义生成公私钥对,主要是指自己定义名称文件,然后配置到ssh config中。1)自定义生成公私钥对ssh-keygen -t rsa -C “git登录名或邮箱名” -f 自定义的文件名(例如id_rsa_xx)2)config配置:进入.ssh/目录,查看是否存在config这个文件,如果没有则创建:然后编辑文件:vim config根据你的需要,加入多个配置,每一个Host配置,表示一个免密连接配置。User=git用户名。
(避雷指引:管理页面超时问题)windows下载安装RabbitMQ 学习RabbitMQ过程中,由于个人电脑性能问题,直接装在windows去使用RabbitMQ,根据各大网友教程,去下载安装完之后,使用web端进行简单的入门操作时,总是一直提示超时,要么容易连接不上。最后发现基本上就一个坑没给大家讲出来,Linux的如果也产生这个问题,那么解决思路也是差不多。
spring事务失效的情况 spring中,可以通过@Transaction注解进行事务的使用,但是在使用过程中常常会存在某些情况,导致事务失效,为了避免事务失效引发的问题,我们可以记录以下一些事务失效的常见场景。事务失效会分为两个大的类型,一是事务不生效,二是事务不回滚。
转发(forward)与重定向(redirect) 1、forward(转发):仅发生在服务端程序内部,当服务器收到客户端请求,先将请求转发给目标地址,再将目标地址返回的结果转发给客户端。客户端并不清楚服务端发生的情况,在页面客户端只会看到一个展示结果以及一次的访问(一次访问)。2、redirect(重定向):客户端发起请求至服务端,服务器接收到请求,会给客户端返回一个临时响应头,这个临时响应头会记录了需要被重定向的地址,客户端会再次发起请求至需要重新访问的地址(二次访问)。
过滤器(Filter)和拦截器(Interceptor)的区别 拦截器,是java技术中,spring框架的一个组件,其工作原理依赖于java的反射机制。在AOP(Aspect-Oriented Programming)中,用于在某个方法或字段被访问之前,进行拦截,然后基于AOP的设置,在访问的过程前、中、后自定义的加入操作。拦截器本身是属于AOP的一种实现策略。在WebWork的中文文档中解释为 - 拦截器是动态拦截Action调用的对象。它提供了一种机制,可以使开发者可以定义在一个Action执行的前后执行的代码,也可以在一个Action执行前阻止执行。
Object.defineProperty()方法与Uncaught TypeError: Property description must be an object错误 该静态方法用于给对象定义一个新的属性,或修改一个现有属性,其格式为:objpropdescriptor参数解析:·obj:需要定义属性的对象、被操作对象;·prop:需要定义或修改的属性名称,通常使用’’单引号括住;descriptor:要定义或修改的属性的描述符。方法返回值:所传入的对象obj,并且指定新增或修改的属性已经被操作完成。这个函数的作用与描述符的概念,跟上面的Object.defineProperty()是一致的。唯一不同的是使用格式。
Java8(JDK1.8)的新特性 函数式接口的出现是为了方便Lambda表达式的使用。所有的函数式接口都是可以适用于Lambda表达式的。同时,可以通过注解来判断是否为规范的函数式接口,如果自定义接口加该注解编译通过则为规范。Stream是指流。流式编程是java8比较大的亮点之一,是继java5之后对集合的再一次升级。有了Stream API之后,可以一行代码完成集合类操作。
数据库索引 假设有一张用户表t_user:id(PK)name每一行记录在硬盘上都有一个存储编号10刘地0x11110120不知火舞0x2220099花泽香菜......88瑰儿......在任何数据库当中主键上都会自动添加索引对象!id字段上自动有索引,因为id是PK(主键)。另外在MySQL中,一个字段上如果有unique约束的话,也会自动创建索引对象。简单理解,就是说:1)在任何数据库当中,任何一张表的任何一条记录在硬盘存储上都有一个硬盘的物理存储编号;
数据库存储引擎 存储引擎是MYSQL中特有的一个术语(部分新型国产数据库采用了MYSQL样式开发而成的,也具备该概念);其他的大部分数据库没有这个概念以及术语,Oracle中有类似的概念,不称为存储引擎。存储引擎实际上是一个表存储、组织数据的方式,而不同的存储引擎,表存储数据的方式会有所不同,基于此,会衍生出一些表操作时的问题,所以可能需要了解一下。但是不建议深入挖掘,除非你就是这个方向的。
MySQL数据库的下载安装 2、选择downloads – 找到MySQL community Downloads>3、选择MYSQL Community Server:4、选择go to download page - 去下载页面:5、选中comunity(社区版)版本下载:6、可以选择登陆账号下载或者以游客身份下载:下面我们以游客身份下载到D盘中。
项目启动报错:cannot be resolved in either web.xml or the jar files deployed with this application 然后后来发现,根本原因实际上是,因为tomcat启动时,配置中设置跳过了所有的tld扫描,导致启动时项目中tld文件未被正常读取而报错。对于这个错误,大家可以去搜索下,有其他的博主碰到不同的情况,我个人对tomcat的底层运行逻辑也不太了解,暂时认为这个是根原因,如果有不同情况,也可以去记录下。}这2个字符,由于最后多了这个逗号隔开的*,导致所有的文件实际上都是被tomcat跳过了扫描,然后项目读取文件配置自带的TLD指向的URI,可能就导致了冲突。
线程(Thread) 看图先理解程序、进程、线程区别点。1、一个程序,可以启用多个进程(多实例);2、一个进程,可以启用多个线程(多线程)。在任务管理器中,我们时常看到像谷歌浏览器,运行时,进程列表中往往不止一个,并且详细信息中看到,每一个进程,线程数都是多个的。