- 博客(36)
- 收藏
- 关注
原创 Spring MVC中Restful风格引入
支持注解:Spring的RestController和RequestMapping等注解使得创建RESTful服务变得简单直观。数据绑定:自动的数据绑定支持,可以将请求自动转换为模型对象,同时也支持多种数据格式的响应,如XML、JSON等。异常处理:通过ExceptionHandler提供了统一的异常处理机制。依赖注入:利用Spring的依赖注入优势,更好地管理服务层。{id} :用户的唯一标识符。{a}和{b}:这两个参数可以用于业务逻辑中的其他目的,比如作为查询参数或用于修改返回的数据。
2024-07-12 20:03:23
605
原创 MyBatis中复杂查询(一对多和多对一)
在MyBatis中处理一对多(1)和多对一(N:1)关系是常见的需求,尤其是在操作数据库中存在关联表时。这些关系的管理能让数据查询更加直观和灵活。下面分别介绍如何在MyBatis中配置和查询这两种类型的关系。
2024-07-05 14:54:16
307
原创 Mybatis使用注解开发
通过以上步骤,可以实现 MyBatis 的注解开发,使得持久层代码更加清晰,减少了 XML 配置的繁琐,提高了开发效率。在实际应用中,还需要考虑事务管理、连接池配置等因素以保证应用的健売和性能。
2024-07-04 14:32:36
298
原创 Mybatis实现流程
创建一个MyBatis映射器XML文件,用于映射SQL查询到 UserDAO接口。//此处对应接口类//标签id="getList"对应接口的方法名字
2024-06-30 18:28:14
246
原创 Spring动态代理详解
私有成员变量rent:它是Rent接口的一个实现,代表被代理的对象。setRent 方法:用于设置代理的目标对象。getProxy 方法:利用ProxynewProxyInstance方法生成代理对象。这个方法需要三个参数:类加载器,接口数组(代理类需要实现的接口),以及一个InvocationHandler实例(当前对象this)。invoke 方法:这是代理实例的方法调用时实际执行的代码。invoke方法可以在调用目标方法前后添加自定义逻辑,本例中只是简单地调用了目标对象的相应方法。//租房。
2024-06-29 13:23:46
673
原创 javaweb中ServletContext的使用
ServletContext是一个强大的 web 应用程序级别的对象,它允许不同的 servlet 共享数据和资源。通过它,开发者可以在 servlet 间传递信息、访问全局资源和记录日志,从而使得 web 应用程序的不同部分能够更好地集成和协作。它特别适合处理那些需要跨多个 servlet 维护状态或共享配置信息的情况。
2024-06-20 22:33:31
352
原创 FactoryBean 接口的使用
Override@Override@Test//获取IOC容器在上述示例中,当请求时,实际上Spring容器会调用的方法返回实例。在Spring中提供了一个强大的机制,用于封装单个对象的创建逻辑,特别是当对象的创建过程比较复杂时(如需要多步骤配置或依赖外部系统资源)。通过使用,可以保持Spring配置的简洁性,同时将复杂的实例化逻辑封装在容易管理的Java类中。
2024-06-11 23:27:14
287
1
原创 Spring中获取bean的三种常用方式
在Spring框架中,一个bean是指由SpringIOC容器管理的一个Java对象。Spring提供了一种依赖注入的机制,可以通过在配置文件中配置bean的定义,实现在代码中通过IOC容器获取bean的实例。根据名称获取Bean方法二根据类型获取Bean方法三 (推荐)根据名称+类型来获取Bean
2024-06-11 17:14:22
216
原创 TCP三次握手四次挥手及time_wait状态解析
如上图,在服务器端发送一个FIN时,客户端会处于time_wait状态。当处于time_wait状态时,我们无法创建新的连接,因为端口被占用。
2023-04-14 14:10:44
959
1
原创 JS包含变量组合定义变量名
例如可能需要生成 data1,data2,data3... (后面的数字是根据定义的参数sum来的) 所以我的函数名,应该由 var "data_"+num =100;生成函数名与赋值,但这问题就来了。初始化变量时 等号左边是不允许是表达式的。所以在JS中使用 var "data"+num = 100 这种写法是有问题的。参数的不同而区分的。这就需要我定义一个var num =1,2,3,4,5,6,7去拼接一个共同的字符串data.今天在写js的时候碰到了问题,我有一个页面需要循环生成很多的变量。
2023-03-17 09:31:08
993
原创 VUE3使用pinia 状态管理
1 pinia 的理解在 vue 2.x 中,vuex是官方的状态管理库,并且 vue3 中也有对应的 vuex 版本。个人认为Pinia语法更加简洁,不必像 vuex 那样定义 state、mutations、actions、getters 等,实现了API 等方式返回状态和改变状态的方法。
2023-02-23 11:34:29
421
2
原创 天勤排序算法汇总
以升序为例,其执行流程可以概括为:每一趟选择当前所有子序列中的一个关键字(通常是第一个)作为枢轴,将子序列中比枢轴小的移到枢轴的前边,比枢轴大的移动到枢轴的后边;当本趟所有的子序列都被枢轴以上述规则划分完毕后会的到新的一组更短的子序列,它们成为下一趟划分的初始序列集。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。复杂度最坏n^2,最好为n。每趟将一个待排序的关键字按照其值的大小插入到已经排好的部分有序序列的适当位置上,直到所有待排关键字都被插入到有序序列中为止,复杂度最坏n^2,最好为n。
2022-11-28 15:56:41
443
原创 SQL中case when then else end用法
case when then else end 可以理解为java的if-else if -else。可以理解为流程控制语句或条件控制语句。可以实现资料获取的时候,可以更多的条件和自定义逻辑。1.已知数据按照另外一种方式进行分组,分析。有如下数据:(为了看得更清楚,我并没有使用国家代码,而是直接用国家名作为primary key)国家(country)人口(population)中国600美国100加拿大100英国200法国300日本250德国200墨西哥50印度250根据这个国家人口数据,统计亚洲和
2022-07-12 09:15:51
34245
原创 Vue(element ui)中行操作row参数的使用
在使用element ui或Vue中当我们要对表格中的数据按行进行特殊操作或标记时,通常通过在vue中methods方法中操作row参数来访问该行的索引或是单元格中的数据进行对应操作。
2022-06-29 17:13:00
12775
2
原创 C#List<T>集合类
为了改变数组大小,必须创建新数组,复制数组元素(如果新数组较小,甚至还复制不完),然后更新对原始数组的引用,使其引用新数组。删除一个数组元素,之后所有元素都必须上移-一位。即使这样还是不好使,因为最后一个元素会产生两个拷贝。插入一个数组元素,必须使元素下移一位来腾出空位。但最后一个元素就丢失了!List集合类通过以下功能来避免这些限制。注意:同数组一样用foreach遍历List集合时,不能用循环变量修改集合内容。在遍历List的foreach循环中不能调用Remove, Add或Inse...
2022-06-20 10:14:59
655
原创 C#泛型使用
所谓泛型是指将类型参数化以达到代码复用提高软件开发工作效率的一种数据类型。 一种类型占位符,或称之为类型参数。我们知道一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——避免了强制类型转换,增强类型安全和减少装箱、拆箱。 通常一个方法或过程的参数都是有明确的数据类型的。 如 : public void ProcessData(int i){} pub
2022-06-17 14:51:53
679
原创 JQuery 属性操作 - attr() 方法
我们在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值需用getAttribute(),而在jquery中,用一个attr()就可以全部实现jquery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr(),attr()有4个表达式。1. attr(属性名) //获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回
2022-06-08 14:38:06
9911
原创 Vue中作用域插槽的使用
Vue中的作用域插槽可以让父组件使用插槽时的内容能够访问子组件中的数据,数据在组件自身,但是根据数据生成的结构需要组件的使用者来决定。这里可以先看一个例子,以便更好的理解作用域插槽的作用,在子组件中使用v-for创建一个列表循环,然后在父组件中通过子组件标签category调用,如下例。category子组件:<template> <div class="category"> <ul> <li v-for="(g,inde
2022-05-12 19:53:14
3796
1
原创 c#委托的使用
一、什么是委托?委托是一种动态调用方法的类型,属于引用型。委托是对方法的抽象和封装。委托对象实质上代表了方法的引用(即内存地址)。委托通常是委托某个方法来实现具体的功能。当我们调用委托的时候,委托包含的所有方法将被执行。虽然在定义委托时与方法有些相似,但我们不能将其称为方法。二、委托的定义1.delegate定义一个int返回值、带一个参数的委托:修饰符 delegate 返回值类型 委托名 ( 参数列表 );public delegate int TestDelegate(
2022-05-11 20:31:17
4747
原创 c#中虚方法和抽象方法的应用
一、抽象类它的作用就是产生子类的同时给于子类一些特定的属性和方法。abstract修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的父类。标记为抽象或包含在抽象类中的成员必须通过从抽象类的子类来实现。特点:抽象类不能实例化,抽象函数不能实现,必须在非抽象函数中重写。如果类包含抽象函数,那么类也是抽象的,必须声明为抽象的。...
2022-05-06 15:35:08
1297
原创 c#继承的构造函数问题
一、什么是继承,有什么作用?概念: 继承就是在类之间建立一种相交关系,使得新定义的派生类(子类)的实例可以继承已有的基类(父类)的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。作用: 继承是面向对象的主要特征之一,它可以让你的代码重复使用,可以节省程序设计的时间,继承就是就是在类之间建立一种相交关系,使得新定义的派生类可以继承已有的基类的特征和能力,而且可以加入新的特性或者是修改已有的特性建立起类的新层次。说明: 比如:你继承了你爸爸的一些特征,你爸爸是基类,
2022-05-05 18:27:54
4784
原创 vuex中mapGetters,mapActions使用
vuex运行流程图如下1.Vue Components 是我们的 vue 组件,组件会触发(dispatch)一些事件或动作,也就是图中的 Actions2.我们在组件中发出的动作,肯定是想获取或者改变数据的,但是在 vuex 中,数据是集中管理的,我们不能直接去更改数据,所以会把这个动作提交(Commit)到 Mutations 中3.然后 Mutations 就去改变(Mutate)State 中的数据;4.当 State 中的数据被改变之后,就会重新渲染(Render)到 Vu
2022-04-27 22:10:13
2790
原创 vue中async和await异步编程
async&await是Promise的语法糖,使用他的目的就是用同步的写法,写异步的操作。async 是“异步”的简写, async 用于申明一个异步的 function,await 可以认为是 async wait 的简写,await 用于等待一个异步方法执行完成。当我们函数中需要返回值是promise对象时通常用async和await简化。async作为一个关键字放到函数之前,表示函数是异步的函数,异步函数也就意味着该函数的执行不会阻塞后面代码的执行,等as...
2022-04-21 21:33:57
5233
2
原创 Vue事件总线
1.常见的组件通信方式pros:父组件传子组件自定义事件:子组件传父组件vuex:均可实现插槽:父组件传子组件pubsub-js:均可实现(较少用)$bus全局事件总线:均可实现2.事件总线的介绍如果咱们的应用程序不需要类似Vuex这样的库来处理组件之间的数据通信,就可以考虑Vue中的事件总线来实现。塔相当于一个全局的仓库,任何组件都可以去这个仓库里获取事件,它就类似沟通桥梁的概念...
2022-04-18 16:58:56
6126
1
原创 vue中ref实现对dom的操作
1.获取页面中dom元素通过在元素标签中配置ref属性后,我们可以通过this.$refs.refname来获取dom元素<template> <div id="app"> <div ref="refname">123</div> <button @click="getTest">获取dom</button> </div></template><scr...
2022-04-14 19:47:51
3348
1
原创 HTML中块元素和行内元素对比
最近发现在很多面试中都是一道基础的面试题,当我们初学时可能平时只注重标签语义,忽视了标签行内和块级的特性。这里进行一个总结1.HTML常见的行内元素有:<span>、<a>、<br>、<b>、<strong>、<img>、<input>、<textarea>、<select>、<sup>、<sub>、<em>、<del>可以和其他元素同处一行
2022-04-13 22:09:44
132
原创 Vue中子组件调用父组件的三种方法
Vue中子组件调用父组件的三种方法:1.直接在子组件中通过“this.$parent.event”来调用父组件的方法。父组件<template> <div> <child></child> </div></template><script> import child from './components/childcomponent'; export default { co
2022-04-13 20:29:50
51166
3
原创 防抖与节流
1.函数防抖定义:当持续触发一个事件时,在n秒内,事件没有再次触发,此时才会执行回调;如果n秒内,又触发了事件,就重新计时只要最后一次操作,这样就防止了用户触发事件过于频繁的问题。这里列举几个场景:搜索框:防止用户不断输入过程中,不断请求资源,n秒内只发送1次,用防抖来节约资源按钮提交场景,比如点赞,表单提交等,防止多次提交。最常见的情况就是比如当我们在input框中传递数据时,不使用节流就会不断的发送数据请求,但是使用节流后,...
2022-04-12 22:16:15
401
原创 总结vue中的常用指令
1.v-model指令用于表单输入,实现表单控件和数据的双向绑定。一般在 <input>、<select>、<textarea>、组件中使用。<body> <div id="app"> <div>val的值:{{val}}</div> <input v-model="val"> </div></body><script&g
2022-04-10 23:23:11
1298
原创 Vue中的路由导航
一,声明式导航是写在template标签里,通过<router-link></router-link>标签来触发二,编程式导航通过组件实例this.$router.push(xxx)来触发路径实现路由跳转最常用的方法1) this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面) ==>> 队列的方式(先进先出)2) this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由.
2022-04-09 23:45:21
2001
原创 原型对象与原型链的理解
原型 prototype:指我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype,这个属性对应着一个对象,这个对象就是我们所谓的原型对象 ,如果函数作为普通函数调用prototype没有任何作用,当函数以构造函数的形式调用时,它所创建的对象中都会有一个隐含的属性,指向该构造函数的原型对象,我们可以通过_proto_来访问该属性原型对象就相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象, 我们可以将对象中共有的内容,统一设置到原型对象中,当我们访问对象的一个...
2022-04-09 15:33:08
1069
原创 在Vue-cli脚手架中引入图片最常用的两种方法
CommonJS API定义了很多普通应用程序(主要指非浏览器的应用)使用的API,require就说其中之一,我们通常需要在组件中引入图片时,可以在Data里使用这个方法require(" ")这时只需要将标签里的src属性值改为data中的属性名就可以引入图片。总结了在Vue-cli脚手架中最常用的两种方法1.在.vue文件中import edit from 'path'(path是图片与.vue的相对路径),然后在template中给标签绑定属性<img src="edit"
2022-04-07 23:27:56
2193
原创 JavaScript中querySelector和getElementByld(getXXXBy XX)的区别
在日常开发中,我学使用原生JavaScript获取元素的时候,最常用的方法就document.getElementByld (getXXXByXX)方法。但是最近发 现有很多地方使用的是queryselector方法而不是使用前面的方法。去官方文档查看是这么说的: 文档对象模型Document引用的queryselector()方法返回文档中与指定选择器或选择器组匹配的第一个html元素Element。如果找不 到匹配项,则返回null。 这句话看意思和getElemen...
2022-04-07 22:51:55
1537
原创 Invalid prop: type check failed for prop “index“. Expected String with value “undefined“,
在引入ElementUI进行渲染时,在项目中用v-for的时候报了这个错,看到[Vue warn]基本上是Vue在处理数据的并且渲染到页面的组件上出现了错误。一般找不到在哪里报错,需要找到渲染的组件看看他的绑定值,尤其是index或者key有没有取不到的值这行中subindex中最终出现这样的问题,结果导致整个菜单框渲染报错。报错翻译:无效属性:属性“index”的类型检查失败。应为值为“undefined”的字符串,但未定义。将:index=“subIndex"或唯一路径inde.
2022-04-07 21:31:02
4124
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人