自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(272)
  • 收藏
  • 关注

原创 React中每次渲染都会传入一个新的props.children到子组件?

在 react 中, 我想要对组件的渲染进行优化, 遇到了一个非常意思的问题, 当我向一个组件中传入了 props.children 之后, 每次父组件重新渲染都会导致这个组件的重新渲染;它看起来的表现就像是被memo包裹的组件, props和自身状态未发生变化, 组件却重新渲染了;

2023-12-08 11:25:06 1238

原创 React中传入props.children后, 为什么会导致组件的重新渲染?

在 react 中, 我想要对组件的渲染进行优化, 遇到了一个非常意思的问题, 当我向一个组件中传入了 props.children 之后, 每次父组件重新渲染都会导致这个组件的重新渲染;它看起来的表现就像是被memo包裹的组件, props和自身状态未发生变化, 组件却重新渲染了;

2023-12-08 11:23:05 1295

原创 Vue响应式原理和本质 - 实现一个完善的响应式系统

本篇文章代码思路来自Vue3.0源码, 部分理解来源于霍春阳 《Vue.js设计与实现》这本书的理解, 感兴趣的小伙伴可以自行购买阅读。可以非常明确的感受到作者对 Vue 的深刻理解以及用心, 富含非常全面的 Vue 的知识点, 强烈推荐给大家。

2023-10-30 20:20:32 406 1

原创 Mac安装多个版本Node.js

前言 开发旧项目时,使用低版本Node.js。开发新项目时,需使用高版本Node.js。//打开已安装的Node.js列表,并使用上、下箭头切换版本,然后回车确认。可使用n同时安装多个版本Node.js,并切换到指定版本Node.js。默认使用国外镜像(nodejs.org/dist/),导致下载…4 查看已安装Node.js版本列表。7 查看切换后的Node.js版本。Mac安装多个版本Node.js。3 安装指定版本Node.js。加-E才能拿到临时环境变量。6 切换Node.js版本。

2023-10-24 10:45:10 557 1

原创 Vue虚拟DOM理解-深入且易懂

先抛出一个结论, 这个结论对本篇文章的理解很有帮助: Vue是一个保留了运行时+编译时架构的框架, 编译时, 用户可以提供 HTML 字符串, 我们将其编译为数据对象再交给运行时处理;运行时根据提供的

2023-10-13 16:33:52 246 10

原创 搞懂什么是跨域?公司在开发中跨域的解决方案是什么?

要想理解跨域,要先理解浏览器的同源策略:同源策略是浏览器中的一个重要的安全策略,它用于限制一个源(origin)的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。如果两个 URL的协议、主机、端口都相同的话,则这两个 URL 就是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是“元组”。在早期的服务器端渲染的阶段,是没有跨域的问题的;

2023-07-29 14:00:13 378 1

原创 解决Umi初始化项目引入Antd组件报错“xxx“不能用作 JSX 组件

因为你的其他库依赖了@types/react或者@types/react-dom,比如项目安装了react-router这个库, 而这个库又安装了18版本的@types/react,导致多个ts校验不通过。: 尝试在package.json里面添加以下配置:版本改为你指定的版本就好。: 在使用umi初始化项目后, 所有从antd引入的组件全部报。

2023-07-16 21:46:18 2829

原创 数据库设计规范-三大范式

目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF), 在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般来说,数据库只需满足第三范式(3NF)就行了, 这也就是我们要讲的三大范式。

2023-06-30 00:00:00 362

原创 SpringBoot多环境启动

多环境开发我们就配置完成了, 但是我们发现profiles是被打了删除线的, 说明是过时的格式。通过spring下的profiles属性, 分别设置生产环境、开发环境和测试环境。在通过spring下的profiles下的active属性设置当前的运行环境。application.yml文件中, 设置三种环境, 环境间使用。我们需要配置多环境开发, 让项目在不同的环境下切换不同的配置信息。可以发现目前启动的是80端口, 说明使用的是我们配置的开发环境。例如下面, 在不同环境下, 数据库的连接信息是不同的。

2023-06-28 00:00:00 613

原创 SpringBoot的基础配置 - yaml文件的格式以及数据读取

常用。

2023-06-15 12:28:31 1315

原创 SpringBoot入门程序以及启动方式 - 项目中切换服务器依赖

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程Spring程序缺点配置繁琐依赖设置繁琐SpringBoot程序优点自动配置起步依赖(简化依赖配置)辅助功能(内置服务器,……)SpringBoot程序启动方式SpringBoot在创建项目时,采用jar的打包方式SpringBoot的引导类是项目的入口,运行main方法就可以启动项目} }SpringBoot起步依赖starter。

2023-06-06 17:12:25 657

原创 SpringMvc拦截器使用介绍

拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行作用在指定的方法调用前后执行预先设定的代码阻止原始方法的执行(例如权限管理执行流程拦截器与过滤器的区别归属不同:Filter属于Servlet技术,Interceptor属于SpringMVC技术拦截内容不同:Filter对所有访问进行增强,Interceptor仅针对SpringMVC的访问进行增强。

2023-05-03 00:00:00 905 2

原创 SSM整合(三) | 异常处理器 - 项目异常的处理方案

持续补充。

2023-05-01 00:00:00 1462 7

原创 SSM整合(二) | 表现层数据封装格式及封装步骤

模型类我们一般定义在controller包下。

2023-04-30 00:00:00 1395 2

原创 SSM整合(一) | SSM创建项目配置整合 - 添加功能模块

创建com.chenyq.service包, 在该包下创建BookServiceTest测试。再在service层创建一个impl包, 并创建BookService接口的一个实现类BookServiceImpl。config包下创建一个Web容器配置类ServletConfig配置类。config包下创建SpringMvcConfig配置类。config包下创建SpringConfig核心配置类。config包下创建MyBatisConfig配置类。config包下创建JdbcConfig配置类。

2023-04-26 00:00:00 909 1

原创 SpringMVC - REST风格介绍已经RESTful简化开发

REST (), 表现形式状态转换(访问网络资源的风格传统风格资源描述形式id=1REST风格描述形式REST优点隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化REST风格介绍按照REST风格访问资源时使用行为动作区分对资源进行了何种操作http://localhost/users 查询全部用户信息 GET(查询)http://localhost/users/1 查询指定用户信息 GET(查询)http://localhost/users 添加用户信息 POST(新增/保存)

2023-04-24 00:00:00 548

原创 SpringMVC请求与响应

地址参数名和形参变量名相同:示例请求: http://localhost:8080/commonParam?

2023-04-23 00:00:00 498

原创 SpringMVC使用介绍-快速入门

定义一个servlet容器启动的配置类, 在里面加载spring的配置为了让Tomcat服务器在启动时加载SpringMVC配置类;SpringMVC加载的bean对应的包均在com.chenyq.controller包内, 我们让SpringMVC只扫描com.chenyq.controller这个包即可。解决方案: 加载Spring控制的bean的时候, 排除掉SpringMVC控制的bean。设定SpringMVC的配置文件, 加载我们定义的controller这个bean。

2023-04-18 00:00:00 479

原创 Spring开启事务流程和事务相关配置

我们需要开启Spring事务, 让加钱和减钱的操作同时成功或失败, 注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务, Spring开启事务步骤如下。②:账户金额A减执行完成后, 程序出现异常后,转账失败,但是异常之前账户金额A减操作成功,异常之后账户金额B加操作失败,这是有非常大的安全隐患的。步骤一: 使用@Transactional注解开启任务, 不过我们一般不是在实现类的方法中开启事务, 而是在接口的方法中开启, 降低耦合度。

2023-04-15 00:00:00 659

原创 Spring面向切面编程AOP使用介绍

概念:AOP(Aspect Oriented Programming)面向切面编程,一种编程范式作用:在不惊动原始设计的基础上为方法进行功能增强核心概念代理(Proxy):SpringAOP的核心本质是采用代理模式实现的连接点(JoinPoint): 在SpringAOP中,理解为任意方法的执行切入点(Pointcut):匹配连接点的式子,也是具有共性功能的方法描述通知(Advice):若干个方法的共性功能,在切入点处执行,最终体现为一个方法切面(Aspect):描述通知与切入点的对应关系。

2023-04-13 19:10:56 697

原创 Spring整合Mybatis和Junit (注解开发) 手把手讲解

然后将Service层, UserServiceImpl定义为bean, 并将UserDao注入进来使用。SqlSessionFactory对象又来自于Mybatis的配置文件, 我们可以将配置文件下面三部分。只想看Mybatis整合移步观看第二节, 手把手教。初始化SqlSessionFactory对象。首先是将数据层UserDao定义为bean。获取连接, 获取实现。在App类中测试使用。

2023-04-07 00:00:00 212

原创 Spring核心容器(四) | 注解开发 - bean管理 - 依赖注入 - 第三方bean管理

注解开发定义bean分两个步骤使用@Component定义bean, 默认的value就是指定bean的名称, 可以理解为配置中的id属性} }核心配置文件applicationContext.xml中, 通过组件扫描加载bean--开启context命名空间, 扫描com.chenyq包下所有的类--> < context: component-scan base-package = " com.chenyq " />

2023-04-05 00:00:00 671

原创 Spring核心容器(三) | 依赖注入的方式 - 自动装配 - 集合注入介绍

使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用。配置中使用bean标签autowire属性设置自动装配的类型, autowire有下面几个属性。IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配。使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用。前面我们在DI快速入门中, 使用的就是setter方法注入引用类型。在bean中定义引用类型属性并提供可访问的set方法。

2023-04-03 00:00:00 364

原创 Spring核心容器(二) | bean使用及配置详细介绍

如果想要设置非单例模式, 我们需要重写isSingleton方法,该方法返回一个布尔值, true代表单例, false代表非单例。但是上面方法中, 工厂bean是为了创建方法bean而存在的, 是为了配合使用并无实际意义, 并且方法名不固定, 每次都需要配置。使用实例工厂实例化bean, 首先需要将工厂的bean造出来, 在通过工厂的bean将工厂要创建对象的bean造出来。例如我们有下面一个实例工厂, 使用实例工厂创建的方式如下, 与静态工厂相比多了一步实例化工程对象。

2023-03-31 00:00:00 597

原创 Spring核心容器(一) | IoC和DI快速入门

BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载。有如下一段业务层的代码: 创建一个数据层BookDaoImpl2的对象, 并调用该对象的save方法。在BookServiceImpl类的save方法中还是使用的new BookDao的形式创建的对象。Service中需要的Dao对象, 需要通过提供方法的方式, 让Dao对象进入到Service中。IoC容器负责对象的创建、初始化等一系列工作,被IoC容器创建或管理的对象在IoC容器中统称为。

2023-03-29 00:00:00 289

原创 Spring学习流程介绍

Spring中出现最早的技术是Spring Framework, 我们要学习的也是Spring Framework,它是Spring生态圈中最基础的项目,是其他项目的根基。AOP是Spring对面向切面编程的实现, Aspects也是该思想的实现, Spring发现Aspects实现的比自己好, 就大胆的将Aspects收入了技术栈。Spring内部不仅提供了自己的访问数据层的技术, 同时还支持使用Spring技术与其他的技术整合使用;AOP:面向切面编程, 可以在不惊动原始程序的基础上增强功能。

2023-03-27 14:00:00 672

原创 JavaWeb - Ajax - Axios - JSON基本使用介绍

概念AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XMLAJAX作用与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据使用了AJAX和服务器进行通信,就可以使用 HTML+AJAX来替换JSP页面了异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想、用户名是否可用校验,等等…JSON概念。

2023-03-24 00:00:00 650

原创 JavaWeb过滤器和监听器使用介绍

执行放放行前的逻辑, 然后放行去访问对应资源;资源访问完成后在进行响应时, 还是会经过过滤器Filter的;此时回到Filter中, 是不会重头执行的, 只会执行放行后的逻辑。监听器可以监听就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。定义类,实现 Filter接口,并重写其所有方法;过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等…过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。

2023-03-22 00:00:00 208

原创 会话跟踪技术-Cookie和Session使用及原理

会话的概念用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应会话跟踪的概念一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享实现方式1.客户端会话跟踪技术:Cookie2.服务端会话跟踪技术:Session。

2023-03-20 00:00:00 245

原创 Java Request和Response对象 - Response篇

如下图: 浏览器向资源A发送请求, 资源A响应给浏览器, 响应状态码302告知浏览器资源A处理不了, 去找另一个资源, 通过location: xxx的方式告知浏览器去找哪一个资源;浏览器收到响应后, 再向其他资源发送请求。中文数据乱码:原因通过Response获取的字符输出流默认编码:ISO-8859-1, 解决中文编码问题, 我们只需修改字符输出流的编码为: utf-8。该流不需要关闭,随着响应结束,response对象销毁,由服务器关闭。Response: 使用 response对象来设置响应数据。

2023-03-19 00:00:00 847

原创 Java Request和Response对象 - Request篇

GET 请求方式 和 POST 请求方式 区别主要在于获取请求参数的方式不一样,是否可以提供一种统一获取请求参数的方式,从而统一doGet 和 doPost方法内的代码?既然有了统一获取参数的方法, 那么我们doPost方法中直接调用doGet即可, 无需再编写重复逻辑的代码。浏览器进行URL编码默认使用的是UTF-8, 而Tomcat进行URL解码默认的是ISO-8859-1;通用指的是: 获取参数的方法既可以被用于Get, 又可以被用于Post请求;请求参数如果存在中文数据,是会出现乱码问题的。

2023-03-17 00:00:00 864

原创 Web资源开发技术 Servlet 使用的超详细介绍

Servlet 是 Java提供的一门动态web资源开发技术创建Web项目, 导入Servlet依赖坐标创建: 定义一个类,实现 Servlet接口,并重写接口中所有方法,并在 service方法中输入一句话配置: 在类上使用@WebServlet 注解,配置该 Servlet的访问路径访问: 启动 Tomcat,浏览器输入URL 访问该Servlet; 访问后会在控制台打印我们输出的 “servlet hello world”Servlet运行在Servlet容器(web服务器)中,其生命周期由容器

2023-03-12 00:00:00 341

原创 Tomcat基本使用 - 2022IDEA使用Maven创建Web项目 - IDEA中集成使用Tomcat介绍

Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAFTomcat 也被称为 Web容器、Servlet容器。

2023-03-10 00:00:00 517

原创 MyBatis 配置文件和注解完成增删改查使用的超详细介绍

数据库表 tb_brand安装 MyBatisX 插件:完成下面查询功能:需求:步骤分析:实现过程如下:解决名称不匹配请问那天问题注意: 数据库的字段名称和实体类的名称不一样, 则不能自动封装数据, 解决方式有下面两种:查询详情需求:步骤分析:实现过程如下:条件查询多条件查询(传递多个参数)需求:分析步骤:传递多个参数有三种方式:方式一: 散装参数方式二: 对象参数方式三: Map集合参数三种参数定义的方式是可以共存的:多条件查询-动态条

2023-03-08 00:00:00 608

原创 MyBatis框架快速入门 - 基本使用

什么是MyBatis?MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github官网持久层负责将数据到保存到数据库的那一层代码JavaEE三层架构:表现层、业务层、持久层框架框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。

2023-03-06 12:01:41 688

原创 Maven基本使用以及IDEA中配置使用的详细介绍

Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档官网链接Maven是专门用于管理和构建Java项目的工具,它的主要功能有提供了一套标准化的项目结构由于不同的编辑器创建项目的目录结构各不相同, 不够通用;Maven提供了一套标准化的项目结构,所有IDE使用Maven构建的项目结构完全一样,所有IDE创建的Maven项目可以通用提供了一套标准化的构建流程(编译,测试,打包,发布……)

2023-03-05 00:00:00 764

原创 JavaWeb - JDBC数据库连接池Druid

数据库连接池是个容器,负责分配、管理数据库连接(Connection)数据库连接池, 在系统启动前, 初始化一个容器它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个, 应用程序使用完连接后会放缓数据库连接池;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏好处资源重用提升系统响应速度避免数据库连接遗漏数据库连接池标准的接口: DataSource官方(SUN) 提供的数据库连接池标准接口,由第三方组织实现此接口。功能:获取连接。

2023-03-03 00:00:00 609

原创 JavaWeb - JDBC操作数据库基本操作和API详解

开启事务:setAutoCommit(boolean autoCommit)

2023-03-01 00:00:00 733

原创 SQL语句 - 多表查询使用详细介绍

例如我们有一张员工表和部门表, 员工表有6条数据, 部门表表有4条数据# 创建部门表 CREATE TABLE dept(did INT PRIMARY KEY AUTO_INCREMENT , dname VARCHAR(20));-- 添加部门数据 INSERT INTO dept(dNAME) VALUES('研发部') ,('市场部') ,('财务部') ,('销售部');

2023-02-27 00:00:00 1985 64

原创 数据库设计表与表之间的关系详细介绍

软件研发的步骤如下: 设计数据库还是很重要的数据库设计概念数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。比如有哪些表?表里有哪些字段?表和表之间有什么关系?数据库设计的步骤需求分析(数据是什么?数据具有哪些属性?数据与属性的特点是什么)逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)

2023-02-26 00:00:00 3846 87

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除