自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 @RequestParam 和 @PathVariable @Param注解的区别和作用

用于从请求参数中获取数据(例如,查询参数)。:用于从URL路径中获取变量(例如,RESTful风格的路径变量)。:用于将请求体的内容绑定到方法参数上(通常用于处理JSON或XML数据)。

2024-06-17 23:57:00 474 1

原创 Springmvc接收请求参数

如果你觉得这种限制很麻烦,你可以改为String 因为所有参数在接收的时候原值都是字符串

2024-06-17 00:02:08 201

原创 Spring的事务步骤

这种方式用的就是spring框架自己提供的事务的处理机制,@Transactional注解的机制是AOP的环绕通知:在方法执行之前开启事务,方法执行之后回滚或者提交事务。使用 XML 配置文件的方式可以自动为每个符合切入点表达式的类和方法生成事务代理,使用aspectj框架功能,在spring配置文件中声明类和方法需要的事务。这种方式的业务方法和事务配置完全分离的,业务代码就是业务代码,事务就是事务。spring框架自己用aop实现给业务方法增加事务的功能, 使用@Transactional注解增加事务,

2024-06-16 00:59:54 1424

原创 数据库面试

事务就是对一系列的数据库操作(比如将insert,delete,update,select多条sql语句)作为一个整体执行,进行统一的提交或回滚操作,如果这组sql语句全部执行成功,那么一起成功,如果中间有一条sql语句出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库的数据出现问题。

2024-06-15 23:56:24 804 1

原创 Spring-AOP总结

答:前置通知(Before)、后置通知(After,在方法完成之后调用通知,无论方法执行是否成功)、后置通知(After-returning,在方法成功执行之后调用通知)、异常通知(After-throwing,在方法抛出异常后调用通知)、环绕通知(Around,在目标方法之前之后都调用)。值类型注入可以通过@Value()注解来完成,该注解既可以声明在属性上,也可以声明在方法上,建议声明在方法上,但是更多的人会声明在属性上,因为更方便。答:JDK动态代理和cglib代理。AOP,面向切面编程。

2024-06-15 22:35:41 325

原创 监听器总结二

新建一个类实现ServletContextListener接口,重写contextInitialized()(监听ServletContext对象的创建)、contextDestroyed()(监听ServletContext对象的销毁)方法。三类:监听HttpSession中JavaBean的状态的改变(钝化、活化、绑定、解除绑定)的监听器(两个)。监听器:新建的监听类;一类:监听三个域对象的创建和销毁的监听器(三个);二类:监听三个域对象属性变更的监听器(三个);Servlet中的监听器的分类。

2024-06-12 23:57:12 190

原创 什么是监听器

监听web应用的例如销毁,增加,修改,删除 都能被看到是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生变化时,立即采取相应的行动。监听器====》过滤器====》servlet1.1、监听器的分类按对象划分,可以分为ServletContext对象监听器 application 全局作用域HTTPSession对象监听器 session 一次会话ServletRequest对象监听器 request 一次请求按事件划分为。

2024-06-12 23:55:17 183

原创 JUC二总结

1、进程就是正在运行的程序,它是系统资源调度的独立单位,而线程就是程序执行的任务,它是程序使用CPU的基本单位,因此也可以说线程是依赖于进程的。像比如任务管理器里面的运行任务就是线程。

2024-06-10 22:20:26 126

原创 JavaSE面试

因为以前要加入抽象方法时,抽象类必须要实现方法,加入默认方法后,后续实现的接口,对他们没有多大影响。是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。继承是把多个类中相同的内容给提取出来定义到一个类中,这个类就叫做父类,又称超类或基类,而多个类就是子类。2.方法名、形参列表、返回类型都相同,权限修饰符的范围要大于父类方法,声明异常范围要小于父类方法。①通过父类引用操作子类对象时,只能使用父类中已有的方法,不能操作子类特有的方法。

2024-06-10 22:19:52 636 1

原创 Spring知识点总结

Spring框架应用了面向切面的思想,主要体现在为容器中管理的对象生成动态代理对象。答:DI:依赖注入,需要有IOC环境,在Spring创建Bean对象时,动态的将依赖对象注入到Bean对象中去。答:Spring框架是一个开源的容器性质的轻量级框架。主要有三大特点:容器、IOC(控制反转)、AOP(面向切面编程)。Spring将创建对象的方式反转了,从程序员自己创建反转给了程序。答:IOC:控制反转,指得是将对象的创建权反转给Spring。Spring框架是一个容器,能够管理项目中的所有对象。

2024-06-09 23:12:49 326

原创 MyBatisPlus总结二

MybatisPlus内置了分页插件,所以我们只需要配置一个分页拦截器就可以了,由于不同的数据库的分页的方式不一样,例如mysql和oracle数据库的写法是完全不一样的,所以我们需要去指定一个数据库的类型。例如在mysql里面我们有一个limit参数,通过它来控制分页。

2024-06-09 00:19:07 534

原创 springboot知识点总结

知识点总给。

2024-06-05 00:00:44 413

原创 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could

启动Springboot项目后启动报错,本人第一种方法解决无法配置DataSource:未指定'url'属性,也无法配置嵌入数据源。很明显,就是在应用中没有配置datasource的一些相关属性,例如:数据库DataSource或者一些配置出错了。

2024-06-04 00:12:40 368

原创 JAVASE2

private可以修饰一个类中的成员变量,也可以修饰成员方法。被private修饰的成员变量或者是成员方法只能在本类中访问,超出本类范围,只能间接访问,比如说被private修饰的成员变量,在其他类中只能通过getXxx/setXxx方法来访问,目的是提高程序的安全性。比如说被private修饰的成员变量,在其他类中只能通过getXxx/setXxx方法来访问,目的是提高程序的安全性。1、所有属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问。

2024-05-27 23:55:13 198

原创 JAVASE总结一

我们是通过引用去访问JVM堆内存当中的java对象,引用保存了java对象的内存地址,指向了JVM堆内存当中的java对象。* 栈内存:方法代码片段在执行的时候,在栈内存中分配该方法运行时所需的内存空间,方法执行结束后,该方法所属的内存空间将会被释放。11、方法的代码片段以及整个类的代码片段都被存储到方法区内存当中,在类加载的时候,这些代码片段会被载入。12、三块内存当中变化最频繁的是栈内存,最先有数据的是方法区内存,垃圾回收器主要针对的是堆内存。* 堆内存:new运算符创建的对象在堆内存中存储。

2024-05-27 23:42:42 218

原创 前端小案例

获取用户信息,如果用户信息存在,则从中提取用户ID,并将其存储在页面数据中,以便后续使用。案例二:页面加载后会启动一个10秒的倒计时,当倒计时结束时,会自动返回上一页。

2024-05-06 23:50:56 304

原创 catchtap 和 bindtap区别

整个界面的触发函数是toDetailsTap,点我私聊按钮的触发函数是handleChat,如何保证点击按钮,并且renturn时,不会触发toDetailsTap。因此,当你需要在子组件上绑定点击事件,并且不希望事件冒泡到父组件时,可以使用。时,事件将被绑定到当前组件上,并且事件不会冒泡到父组件。换句话说,当你在一个子组件上使用。时,事件将被绑定到当前组件上,并且事件会冒泡到父组件。时,点击事件只会在该子组件上触发,不会向父组件传递。而如果你希望事件能够冒泡到父组件,可以使用。会阻止事件向上冒泡,而。

2024-05-06 18:55:09 482

原创 SpringSecurity面试题

答案: Spring Security是一个基于Spring框架的安全性框架,用于处理身份验证(Authentication)和授权(Authorization)。答案: Spring Security通过配置SecurityConfigurer来保护Web应用程序的URL。答案: Spring Security OAuth2是Spring Security的扩展,用于实现OAuth2协议的身份验证和授权。当用户提交表单时,Spring Security会验证令牌的有效性,只有有效令牌的请求才会被处理。

2024-04-30 23:34:16 753

原创 ES集群分布式查询原理

当新增文档时,应该保存到不同分片,保证数据均衡,那么coordinating node如何确定数据该存储到哪个分片呢?2)对id做hash运算,假如得到的是2,则应该存储到shard-2。3)shard-2的主分片在node3节点,将数据路由到node3。5)同步给shard-2的副本replica-2,在node2节点。6)返回结果给coordinating-node节点。1)新增一个id=1的文档。

2024-04-30 23:32:15 825 3

原创 Elasticsearch实现hotel索引库自动补全、拼音搜索功能

需要注意的是,我们把这个name字段,它的分词器定义成了text_analyzer ,搜索的时候我们 不能用text_analyzer,应该用这个传统的分词器,所以我们用了ik_smart,与此类似的,还有我们的这个all字段,它也是在创建索引时用text_analyzer ,然后在搜索时用ik_smart。Keyword不分词:它的词条直接作为一个整体,然后再去用拼音,因为我将来参与自动补全的,肯定就是固定的一个一个的词条。最后我们就可以重新去导入数据,测试这个拼音分词的,还有自动补全的功能了。

2024-04-28 23:13:57 637 3

原创 ElasticSearch自动补全

1、 如果只是单独使用拼音分词器,是没办法满足具体业务使用场景的,这时候就需要自定义分词器:2、通过自定义分词器,将ik分词器与拼音分词器整合起来,来保证我们的搜索既满足汉字也满足拼音"text":"我爱螺蛳粉",这个错误表明 Elasticsearch 在使用全局分析器pinyin时遇到了问题,因为它无法找到这个全局分析器。可能是由于缺少配置或插件问题导致的。你需要确保已正确配置了pinyin分析器,并且相关的插件已经正确安装和配置:./是指当前目录的简写。在Linux和类Unix系统中,

2024-04-28 19:05:46 1184 2

原创 ElasticSearch集群

海量数据存储问题:单机的ES,数据存储能力是有上限的单点故障问题:如果单机上的Elasticsearch节点发生故障,整个系统会停止服务,导致数据不可访问甚至丢失,造成损失单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。

2024-04-26 23:55:03 818

原创 阿里云服务器开放端口的最最最正确的方法

【代码】阿里云服务器端口无法访问ElasticSearch。

2024-04-26 19:47:53 2543

原创 ElasticSearch搜索结果处理

比如说这里指定一个,将来你还可以继续去指定: 如果有多个要排序的情况下,先按照第一个字段排,第一个字段相等,再按第二个字段排,这一点跟mysql里面也是一样的。那第一个案例是对酒店数据按照用户评价降序排序,如果评价相同,我们再按照价格升序排序,那也就是说这里排序的字段其实是两个, 你在搜索的时候,我先按照用户评价给你排,评价越高,排名越靠前。具体排序的语法怎么来写,大家可以看到这里先指定一个字段名,你要根据哪个字段排,是价格还是日期呀,然后指定排序的方式是asc升序还是dsc降序,这是简单类型;

2024-04-25 23:55:46 384 2

原创 ElasticSearch复合查寻

如果子查询比较多,每一个都参与算分,是不是查询性能就会受到影响,而如果你在使用的时候,你用的是filter查询和must not查询,它们是不参与算分的。虽然BooleanQuery复合查询里面有这么四种组合关系,但是除了跟算分相关的,一般就是关键字:用户输入的个关键字,除了用户输入的个关键字以外,剩下的过滤条件都应该放在must_not 或者filter里边,尽可能的减少算分,提高查询的效率。·filter,从字面来看,它也是必须匹配,Must也是必须匹配,确实它俩都是必须匹配,都是”与”的意思。

2024-04-25 23:41:35 797 1

原创 ElasticSearch批处理

也就是说批量的把数据库的数据写入索引库。那这里的需求是,首先利用mybatisplus去批量查询酒店数据,然后将查询到的酒店数据,也就是hotel把它转换成我们的hotelDoc文档类型。在刚才的新增当中,我们是一次新增一条数据。那么如果你将来的数据库里有数千上万的数据,你一次新增一个,那得多麻烦。,然后一次性完成提交,这种就叫批处理,确实没有什么新东西, 就是把以前的那种新增的代码给它合到一起去提交了。把多个 IndexRequest的请求合并到BulkRequest 对象里。

2024-04-24 23:53:52 490 2

原创 ElasticSearch总结2

长连接和短连接是两种常见的网络连接方式,主要用于HTTP、WebSocket等协议。长连接(Long-Connection):在长连接模式下,客户端和服务器之间的连接是持久的,并且在一段时间内保持打开状态。这意味着在一段时间内,客户端和服务器可以共享同一个连接,从而减少了建立新连接的开销。长连接适用于需要频繁通信的场景,例如实时聊天应用、实时游戏等。在长连接中,客户端和服务器通常会保持连接直到一方主动关闭。

2024-04-24 23:05:52 1045

原创 ElasticSearch总结1

正向索引:比方说我这里有一张数据库表,那我们知道对于数据库它一般情况下都会基于i d去创建一个索引,然后形成一个b+树。那么你根据i d进行检索的速度,就会非常的快,那么这种方式的所以就是一个正向索引。但是如果我现在搜索的字段不是i d,而是一个普通的标题字段,标题字段一般它内容比较长,你不会给他加索引,对吧?即便你给他加索引,那现在我想的不是确的标题值。我想其中的一部分:搜索'手机"select *from tb_goods where title like'%手机%'

2024-04-23 23:24:43 1453

原创 ElasticSearch笔记一

随着这个业务的发展,我们的数据量越来越庞大。那么传统的这种mysql的数据库就渐渐的难以满足我们复杂的业务需求了。所以在微服务架构下一般都会用到一种分布式搜索的技术。那么今天呢我们就会带着大家去学习分布搜索当中最流行的一种ElasticSearch,ElasticSearch是一个非常强大的开源搜索引擎。它可以帮助我们从海量数据中快速的找到所需要的内容。。ES是对ElasticSearch的一个缩写什么是ElasticSearch?

2024-04-23 23:06:45 475

原创 MYSQL45道练习题---持续更新中

②、student学生表: SId:学生id Sname:学生名称 Sage:年龄 Ssex:性别。④、sc学生-课程表: SId:学生Id CId:课程id score:成绩。①、course表: CId:课程id Cname:课程名称 TId:老师id。③、teacher教师表: TId:教师id Tname:教师名称。

2024-04-22 00:31:39 419

原创 JVM知识点总结四

在Java虚拟机中,对象是在Java堆中分配内存的,这是一个普遍的常识。但是,有一种特殊情况,那就是如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也无须进行垃圾回收了。这也是最常见的堆外存储技术。如何快速的判断是否发生了逃逸分析,就看“new的对象实体”是否有可能在方法外被调用。如果当前的obj引用声明为static的?

2024-04-21 15:50:44 231

原创 JVM常见的垃圾回收器

每次进行Minor GC时,JVM会计算Survivor区移至老年区的对象的平均大小,如果这个值大于老年区的剩余值大小则进行一次Full GC,如果小于检查HandlePromotionFailure设置,如果true则只进行Monitor GC,如果false则进行Full GC。虚拟机为每个对象定义了一个年龄计数器,如果对象经过了1次Minor GC那么对象会进入Survivor区,之后每经过一次Minor GC那么对象的年龄加1,知道达到阀值对象进入老年区。3)解析,把类中的符号引用转换为直接引用。

2024-04-21 14:58:57 1027

原创 JVM知识点总结二

类加载子系统:根据给定的全限定名类名(如:java.lang.Object)来装载class文件到运行时数据区中的方法区中。,而虚拟机栈、本地方法栈、程序计数器则是线程私有的,就是说每个线程都有自己的这个区域。根据程序计数器中存储的字节码指令解释/编译为对应平台上的本地机器指令。类加载子系统、运行时数据区、执行引擎。

2024-04-20 02:49:41 641

原创 JVM知识点总结

给每一个对象设置一个引用计数器,当有一个地方引用该对象的时候,引用计数器就+1,引用失效/被释放时,引用计数器就-1;当引用计数器为0的时候,就说明这个对象没有被引用,也就是垃圾对象,等待回收;在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old ),,新生代默认占总空间的1/3,老年代默认占2/3。缺点:增加了空间的消耗,并且无法解决循环引用的问题:当A引用B,B也引用A的时候,此时AB对象的引用都不为0,此时也就无法垃圾回收,所以一般主流虚拟机都不采用这个方法;

2024-04-20 01:54:13 513

原创 JUC知识点三

run()方法的作用是启动一个新的线程,在新的线程里运行线程对象中的run方法;当你的这个新的线程启动以后,就会调用这个线程的run方法:如果有Runable对象,就运行Runable对象的run()方法,如果这个run()方法被子类重写了,那就运行子类中run()的方法;因此,当一个线程结束了,死掉了,对应的Thread的对象仍能调用,除了start( )方法外的所有方法(死亡的线程不能再次启动),如run( )、getName( )、getPriority()等等。真正的底层线程用户是看不到的了。

2024-04-18 08:15:00 1358

原创 Synchronized相关问题

1)当持有锁的线程释放锁时,该线程会执行以下两个重要操作:先将monitor锁对象的持有者 owner 属性赋值为 null唤醒EntryList等待链表中的一个线程(假定继承者)。在1和2之间,如果有其他线程刚好在尝试获取锁(例如自旋),则可以马上获取到锁。2)当线程尝试获取锁失败,进入阻塞时,放入链表的顺序,和最终被唤醒的顺序是不一致的,也就是说你先进入链表,不代表你就会先被唤醒。

2024-04-18 01:52:24 822

原创 SQL255 给出employees表中排名为奇数行的first_name

【代码】SQL255 给出employees表中排名为奇数行的first_name。

2024-04-17 09:15:00 526

原创 SQL261 牛客每个人最近的登录日期(二)

最近一天登陆也就是日期最大的时候,可以使用GROUP BY 再对用户进行分组求解。但问题的关键是使用了GROUP BY对SELECT语句是有限制的:以下是最常见的错误的原因是,无法找到对应的 客户端名(c.name也不能group by user_id, client_id解决的办法是,这个就可以了。和。

2024-04-17 08:00:00 153

原创 SQL215 查找在职员工自入职以来的薪水涨幅情况

【代码】SQL215 查找在职员工自入职以来的薪水涨幅情况。

2024-04-16 03:14:44 173

原创 SQL12 获取每个部门中当前员工薪水最高的相关信息

【代码】SQL12 获取每个部门中当前员工薪水最高的相关信息。

2024-04-16 02:27:08 460

空空如也

空空如也

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

TA关注的人

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