- 博客(23)
- 收藏
- 关注
原创 RabbitMQ小结
优点:时效性较强,可以立即得到结果缺点:耦合度高-服务之间都是直接调用性能和吞吐能力下降-响应时长为几个服务处理的后的总和有额外的资源消耗-上游服务需要等下游服务的结果才能往后执行有级联失败问题-下游服务如果出错,会造成上游服务也失败总结调用目标服务时,需要等待目标服务给出响应,才能继续执行下一步操作使用场景微服务:订单服务调用用户服务,获取用户信息。
2023-09-12 20:26:27
90
原创 docker的命令做一个总结
概述:首先镜像它是Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起的一个文件系统,它由镜像名称和镜像版本两部分组成。docker run -d -p 宿主机端口:容器端口 --name 容器名称 -v 宿主机目录 :容器目录 --rm 镜像ID。当然你在运行这个命令之前一定要先检查你的nginx中的conf文件,里面的配置要和你容器的目录要对应的上。docker run -d -p 80:80 --name nginx 镜像ID。
2023-09-11 17:11:31
94
原创 你犯过最低级的错误是什么?
事情是这样子的,我在做练习springcloud的时候,其中的一个微服务一直在给我返回404的错误,首先看到404我肯定会想到路径错误了,然后查看controller层对比所有的路径发现没什么问题,当然微服务没有报错。查了半天,最后发现了我的controller层没有在指定的包下面,当时人就傻了,给了自己两巴掌清醒清醒。昨天因为自己眼绌半个小时没解出来的bug,结果发现并不是bug。然后还查了chatgpt。
2023-09-10 20:32:11
91
原创 Spring Cloud框架介绍
而使用Zuul,你可以将所有的API请求统一通过一个网关进行管理和转发,客户端只需要和网关通信即可,这样一来,即使微服务的接口发生变化,客户端也不需要修改任何代码,更加简洁高效。比如,你的微服务正常情况下返回的是一个复杂的响应结果,但是当服务出现异常时,你可以配置Hystrix返回一个简单的默认响应,这样可以避免异常情况传播到整个系统,提高了系统的健壮性。其中,最重要的组件之一就是Netflix开源的Eureka,它是一个服务发现框架,能够让你的各个微服务实例相互发现和通信,是不是感觉很酷?
2023-09-07 19:52:21
109
1
原创 xml解析数据
/ 2、使用saxReader对象把需要解析的XML文件读成一个Document对象。System.out.println(user.elementText("地址"));System.out.println(user.elementText("地址"));//7、如何获取全部的文件内容:获取当前元素下的子元素文本值。// 3、从文档对象中解析XML文件的全部数据了。//4、获取根元素下的全部一级子元素。//5、获取当前元素下的某个子元素。//6、获取当前元素的属性信息呢?
2023-09-06 23:04:39
47
1
原创 日常异常处理
org.mybatis.spring.MyBatisSystemException:嵌套异常是org.apache.ibatis.exceptions.TooManyResultsException:selectOne()预期返回一个结果(或null),但发现:2。java.lang.IllegalStateException:找不到@SpringBootConfiguration,需要在测试中使用@ContextConfiguration或@SpringBootTest(classes=…
2023-09-05 23:11:10
75
1
原创 来聊聊缓存在开发中的作用
缓存(cache):是数据库和服务器之间,能够减轻数据库压力还有提升访问效率的一个中间层。因为数据库在实际开发中,这个服务相对而言算是比较脆弱的,可能会因为访问流量过大还有并发一高就造成宕机了。以Redis来举例说明啊!首先客户端发送一个请求查询菜品到后端服务,然后后端服务先查缓存,如果缓存里面有对应菜品的东西那么就会直接返回到前端,如果缓存当中没有东西那么就会继续去查数据库,然后加载数据库的东西存入缓存,再返回给前端。
2023-08-29 21:09:30
74
1
原创 微信登录原理
获得openid的json字符串,然后使用JSON.parseObject()把json解析成JSONObject对象,然后返回jsonObject.getString("openid")(jsonObject本质就是一个map)。)是微信登录功能的API地址。appid和secret可以读配置文件获得(这两个要写你自己的),js_code是前端传的code,grant_type的值是死的直接填入authorization_code。开发者服务端,收到请求后,通过携带的token,解析当前登录用户的id。
2023-08-28 21:39:15
343
1
原创 redisTemplate配置序列化的原理
这段代码告诉你enableDefaultSerializer 有没有开启, defaulUsed序列化器有没有使用如果两者成立,defaultSerializer是不是空的如果是的话,默认序列化器是空的,不能序列化,请将所有序列化进行初始化。enableDefaultSerializer为true,所以你的Key和value就会使用下面的默认的序列化器(hash也是使用着默认的序列化器)。如果你没有设置上图被选中的代码,那么默认就是使用它,所以你要copy选中的代码,写一个Redis的配置类。
2023-08-27 13:11:17
128
原创 一些别人常见的小问题
使用微信开发工具,单击点餐没有反应,然后重连有反应,数据库里有新增的数据说明了一个问题,你的代码没有返回值。,表示连接被拒绝,没有提供更多的相关信息。该异常通常在客户端尝试连接到服务器时出现。Redis没有正常启动导致,配置文件中的密码被重置了。重新修改redis.windows.conf中的密码。这个错误信息是 Java 中的。一看就是服务器没开。解决方法:启动服务器。
2023-08-25 19:51:49
47
1
原创 过滤器代码解析
这段代码作为过滤器的一部分,在用户每次发起请求时进行登录检查。当用户请求其他URL时,检查请求头中的"token"是否存在,并进行相应的处理。这段代码是一个基于Java Servlet的登录检查过滤器,用于在用户发起请求时检查用户是否已经登录。构造一个错误信息的JSON字符串,并设置响应的Content-Type为"application/json;检查当前请求的URL是否为"/login",如果是,则直接放行(通过调用。方法对令牌进行解析和验证。块中,捕获解析异常,并构造一个错误信息的JSON字符串。
2023-08-24 21:28:38
238
1
转载 在中国的Linus
10.Linus依旧坚持维护Linux,即使收入少的可怜,终于国外某大厂使用了Linux,并慷慨的捐助了一笔不菲的资金,他不用在为日常生活发愁。的他的代码,稍加改动,后在发布会大肆宣扬为自研系统,并靠着铺天盖地的水军,把少数知道他所谓自研系统底裤的人发出声音全部淹没。结果就是在往后的日子每个月只有零星的捐助,而下载量却一路飙升,甚至于许多大厂都使用了他的代码,却不愿意向他捐助1分钱,终于他无法维持生活,遂放弃。,应该沉下心来,努力的做技术,不要被外面的诱惑迷了眼”,Linus得知真相后心灰意冷,遂放弃。
2023-08-24 21:17:41
67
1
原创 IDEA报错日志
我在操作图片上传的时候,configuration下面的驼峰映射map-underscore-to-camel-case: true位置。不正确,导致配置文件报错,最后也是及时发现,矫正位置,才正常运行。
2023-08-23 19:53:28
581
原创 js事件绑定代码解析
作为DOM元素,<input>可以通过JavaScript来操作和访问。通过JavaScript可以操作DOM元素,例如获取元素、修改元素的内容或属性,添加、删除元素等等操作。DOM提供了一种对HTML文档结构的表现方式,它将整个HTML文档构造成一个树形结构,每个元素(标签)都是树中的一个节点,节点之间存在父子关系(父节点和子节点),也可能存在兄弟关系。通过DOM元素,我们可以通过其标识符(如id、class等)或其他属性来选择并定位元素,然后对其进行各种操作,实现动态改变页面内容、样式和行为的效果。
2023-08-23 01:22:17
278
原创 什么是红黑树
红黑树(Red-Black Tree)底层是基于一种自平衡的二叉搜索树(自平衡的二叉搜索树是一种在执行插入和删除操作时能够自动保持平衡的二叉搜索树。这些特点保证了红黑树在插入、删除节点时能够自动调整保持平衡,从而保证了红黑树的查找、插入和删除操作的时间复杂度都是对数时间,即 O(log n)。在红黑树上进行插入、删除和查找等操作的时间复杂度都是 O(log n),相较于链表的 O(n) 时间复杂度具有更高的效率。它通过平衡树的调整来保持树的结构,并减少查找、插入和删除操作的时间复杂度。
2023-08-21 19:11:35
38
1
原创 Spring MVC 消息转换器
同样,当控制器方法返回响应时,Spring MVC会根据客户端请求的Accept头部信息,查找适合的消息转换器将Java对象转换成响应消息的数据格式。当客户端(例如浏览器)向服务器发送请求时,服务器需要将请求消息转换成服务器应用程序可以理解的形式,同样当服务器向客户端发送响应时,服务器应用程序需要将响应消息转换成客户端可以理解的形式。消息转换器是Spring MVC框架中的一种功能强大的机制,它可以将HTTP请求和响应中的消息体与Java对象之间进行转换。
2023-08-20 19:26:25
1327
3
原创 深入理解ThreadLocal:在多线程环境中实现线程本地变量
然而,在某些情况下,我们希望实现一种线程私有的变量,即每个线程都拥有自己独立的变量副本,并且不会受到其他线程的干扰。每个线程都可以独立访问自己的变量副本,而不会与其他线程的副本发生冲突。但请注意,正确使用 ThreadLocal 并预防内存泄漏需要根据具体的业务场景和代码实现进行综合考虑,避免不必要的长期引用和持有。使用弱引用(WeakReference):如果你的应用场景中涉及线程池等长时间存活的线程,可以考虑使用弱引用包装 ThreadLocal 对象,以便更容易释放相关的变量副本。
2023-08-18 17:54:56
156
1
原创 如何写API接口文档
-本段摘自:Chat JPT。2.API接口文档提供了详细的API信息和示例代码,使得开发者可以更快速、准确地使用API进行开发工作,提高开发效率和代码质量。3.文档化测试:根据文档的传输方式和传输数据的格式,验证API的输入和输出是否符合预期,帮助发现和解决潜在的问题。所谓API接口文档里面的大体上都应该是由请求路径、请求方式、接口描述、请求参数、返回数据这么几部分组成的。Swagger框架的原理是基于注解和反射,通过读取代码中的注解信息,动态生成API文档和交互式界面。使用场景:。
2023-08-16 21:18:59
308
1
原创 拆分maven工程的小知识
- springboot父依赖 -->便可以拿到父工程的所有依赖,可以帮我减少开发的成本,减少代码冗余,以上面的方式去创建项目还可以解三层架构的耦合性。GAV是我们拆分项目的底气,因为在maven工程子模块之间如果想在IOC容器中拿到对象,我们可以在那个要使用的模块下的pom.xml定义我们想要拿到模块的GAV坐标。我们凭什么可以拆分项目,第一依靠的是父工程帮子模块管理了所有的依赖,子模块可以继承父工程拿到父工程的依赖。此时你可看见,你的health-domain模块已经继承health-TOI。
2023-08-15 20:51:48
46
原创 idea集成Git操作演示
1)我们在使用Git管理项目代码时,并不是所有文件都需要Git管理,例如Java项目中编译的.class文件、开发工具自带的配置文件等,这些文件没有必要交给Git管理,所以也就不需要提交到Git版本库中。右键你的项目名New==>.ignore File ==>.gitignore File(Git)红圈指的地方点谁用谁然后删掉没点的那边,两边都删掉的话那就,保留中间的。3)添加到忽略列表中的文件后续Git工具就会忽略它。b1修改成8089然后添加到暂存区,提交到本地仓库。然后你的代码就推送到玛云上面了。
2023-08-14 21:44:56
135
原创 Spring Boot 整合 SSM的简单操作
SpringBoot的主要功能如下:- 起步依赖:SpringBoot以功能化的方式将需要的依赖进行组装,并且允许程序员以start的方式进行引入- 默认配置:SpringBoot实现了大量依赖框架的默认配置项,程序员无须再进行自己配置- 内置Tomcat:SpringBoot内置了一个tomcat,使用它开发的程序无需再进行tomcat部署,可直接运行。
2023-08-14 09:02:52
111
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人