自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——优化网站性能

需要启动服务器,压力测试利用工具模拟客户端访问服务器。同时模拟很多人访问。LoadingCache是同步缓存,一般使用LoadingCache。AsyncLoadingCache是异步缓存,支持并发的取数据。压力测试之前需要将缓存去掉,同时还需要将日志去掉。去优化查询的方法,通常优化的是Service。挡显示logger中日志,从数据库中查数据了。一个缓存帖子列表,另一个缓存帖子总的行数。数据多一点,性能差一点,使缓存有一个对比。放入优化代码,将注释去掉,启用缓存之后。本地缓存和redis缓存的区别。

2022-11-29 09:00:00 505

原创 【仿牛客网笔记】项目发布与总结——单元测试、项目监控

在项目上线之前需做好单元测试,平时开发的过程中,每个功能也需要进行单元测试。验证注解的作用,注解是修饰方法的。每次调方法都是静态的对test1和test2分别进行运行通过类进行运行,运行所有的方法测试帖子的Service,注入向应Bean。

2022-11-29 08:45:00 485 1

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——将文件上传至云服务器

启用定时器,每隔一段时间查看是否生辰图片,如果图片一直没生成则可能有问题。生成上传凭证,将凭证写入到表单,传给模板,表单根据凭证传给七牛云。再创建一个空间为community_share。使用七牛云,首先进行注册,注册之后认证。使用定时器,单独写一个类,实现run方法。当某条件达成的时候,在run方法停止。通过有参构造器,强制传递参数。域名30天,到期后重新创建。具有独立域名可以绑定域名。存储的时候使用对象存储。policy是响应信息。注入分享空间的url。

2022-11-28 10:15:00 322

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——生成长图

服务端html做一个和截图一样的模板,然后通过工具访问模板,读取模板的内容生成长图。启动服务的时候,只会调用一次init()方法。生成长图以后需要返回访问路径。mkdir方法创建图片路径。生成本地文件生成的路径,模拟开发一个分享的功能。还需要图片存放的位置。

2022-11-27 08:15:00 167

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——热帖排行

AAA的分在三个之内是最高,其次是BBB,最后是CCC。启动服务之后,根据配置,应该会创建数据插入到表中。首次访问没有传参,所有需要给一个声明。5分钟后刷新完毕从数据库中查询,查看分数。G:系数,通常为1.5,1.8。注入RedisTemplate。注释掉定时任务,注释注解就可以。对代码进行重构,可以支持排序。在谁上点,把谁动态点亮。

2022-11-26 23:05:41 458

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——任务执行和调度

实例化logger,通过logger输出,自然而然带上线程id,线程时间。Quartz存入到数据库中,多个Quartz同时访问。集群服务器有两类程序一类普通请求,另一类定时任务。简便调用方式,只要在任意一个Bean。配置在第一次读取到初始化到数据库里。注释@Bean后不会被加载,需要去掉。sleep实现让当前线程阻塞一下。Spring定时任务线程池(简化)Nginx同一时刻有一个去处理。Spring执行定时任务的线程池。Spring普通线程池(简化)继承Job,实现Job的方法。Trigger触发器。

2022-11-21 08:30:00 268

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——Redis高级数据类型、网站数据统计

将三组数据合并,在合并后的重复数据中统计合并后的独立整数。一共有20万个数据,去重统计一下一共有多少数。建立拦截器,每次请求都是一个访问。统计每日UV,查询一段时间的UV。

2022-11-20 09:00:00 121

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——置顶、加精、删除

首先开发数据访问层,因为是对帖子的操作所以无论是置顶、加精最终是要修改帖子,先打开DiscussPostMapper增加修改的操作,一个修改类型,一个修改状态。Controller中编写置顶,加精,删除三个方法。确认HTML有没有对置顶,加精,删除按钮的处理。导入包后需要咋模板写入namespace命名空间。在Service层中编写方法,方便表现层去调用。置顶,加精,删除是在帖子的详情页面上。传入service的方法,将id传入。最后不是save而是delete。实现置顶、加精的修改,删除。

2022-11-19 09:45:00 409

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——权限控制

这个时候浏览器先服务器发送请求,get请求,get请求是一个有表单的页面。这个请求希望返回一个带form的页面,返回后没有直接提交,而是访问另外一个网站,这个网站是一个带有病毒的网站,通过病毒窃取了用户的cookie,这个网站就可以模仿,伪造你的身份,帮你进行了一个提交,这是一个要求转账这个时候就不安全。Security会在返回的时候携带一个隐藏的Tocken,防止CSRF攻击。在请求登录的开始判断,登录后,得到用户,并得到了权限后面授权就可以进行。除了这些请求,其他的请求统统允许。当权限不够处理的时候。

2022-11-18 09:15:00 245

原创 【仿牛客网笔记】项目进阶,构建安全高效的企业服务——Spring Security

Spring MVC 的核心组件是DispatcherServlet,所有的组件都是交给DispatcherServlet处理,然后将请求分发给控制器,具体由某个控制器控制请求,控制器可以由多个。利用统一的机制,处理系统,利用了JavaEE的规范Filter,顶层有很多的Filter。准备demo级别的项目,在简单的基础演示Security,学习完后在引入到项目中。启动后,在还没有登录的时候Spring Security会自带登录界面。简单模拟实现,尽可能的简单。编写denied路径。

2022-11-17 07:45:00 250

原创 【仿牛客网笔记】Elasticsearch,分布式搜索引擎——开发社区搜索功能

查询帖子需要从数据库中查,即DiscussPostService中查找,从数据库中查找。数据库中查询帖子id,查询到帖子后,然后存储到ES服务器中就可以。实现搜索帖子,keyword关键字,current当前第几页。启动服务器的时候确保zookeeper和kafka是启动的。提供一个方法向ES服务器里提供新产生的帖子save。首先判断消息内容是否为空,格式是否错误。注入eventProduce,触发事件。发布评论是在comment。判断一下是否触发发帖事件。这个事件触发之后去消费。

2022-11-16 08:45:00 200

原创 【仿牛客网笔记】Elasticsearch,分布式搜索引擎——Spring整合Elasticsearch

set是一个开关,读取系统的属性,这个属性是key,将key设置为false就不会检查这个,所以我们在服务器启动的时候设置为false。针对帖子的配置所以在DIscussPost中,通过注解配置@Document,实体中的属性和索引中的字段对用关系通过注解配置。response取到搜索数据,得到是SearchHits,如果hits为0,则没有数据。@Repository是Spring提供的针对数据访问层的注解。我们需要想办法将数据库中的帖子存放到ES的服务器中,然后去ES服务器中搜索帖子。

2022-11-15 12:30:00 258

原创 【仿牛客网笔记】Elasticsearch,分布式搜索引擎——Elasticsearch入门

Restful是一种设计风格,这种风格规定了前后端应该按照什么标准交互,不同类型的Http的请求的请求的格式是什么样的,请求标准的一种描述。采用集群分布式部署,每一台服务器称为节点,分片是对索引的进一步划分,副本是对分片的备份。7.0的时候废弃掉了。ES中的文档和数据库中的表的一行,文档通常采用的是js结构,js中每一个属性叫字段。支持结构化的数据,非结构化的数据也可以,即各种类型的数据通过它都可以。具体的搜索条件可以通过body提交,通过请求体提交复杂的请求。ES中的类型和数据库中的table表想对应。

2022-11-14 10:30:00 362

原创 【仿牛客网笔记】 Kafka,构建TB级异步消息系统——优化登陆模块、Kafka入门、Spring整合Kafka

我们使用阻塞队列发送消息系统。阻塞队列是java自带API。通过put和take阻塞。通过kafka发送消息。一个生产者,一个消费者。

2022-11-13 16:15:00 388

原创 【仿牛客网笔记】 Kafka,构建TB级异步消息系统——发送系统通知、显示系统通知

Kafka的windows报错会由于某些原因崩溃,看它的报错日志经常会因为某一条数据锁死有冲突。from_id:通知一定是系统用户所以from_id一定是为1的,为了避免和访问的私信混淆。conversationid为空,是因为不是要会话的,而是要整个的。判断消息内容是否为空,消息格式是否错误。status为2表示是私信删除的状态。需要注入EventProduce。

2022-11-12 15:00:00 650

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——优化登陆模块

原来的验证码存储在session中,现在存储在redis.将LoginTicketMapper废弃掉。实现上面方法需要注入下面的Bean。实现上面的方法需要注入Bean。注释掉登录中的session。不是删掉而是将其状态改为1。将session注释掉。使用redis存登录凭证。验证码是在登录的功能。将其设置为不推荐使用。注释掉后将报红的去掉。

2022-11-11 09:15:00 293

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——关注列表、粉丝列表

遍历后将数据封装到map中查询某个用户的粉丝首次配置页面,需要配置基本页面关注列表follower.html分页粉丝列表和关注列表一样需要遍历

2022-11-10 07:30:00 350

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——点赞

最后返回一个JSON格式的数据。使不其不是一个超链接,而是一个js,定一个单击事件onclick,将超链接当成一个按钮使用,需要传入一些条件因此需要一些变量。

2022-11-09 09:30:00 279

原创 仿牛客网笔记】 Redis,一站式高性能存储方案——关注、取消关注

这个功能在操作的时候是异步的,一点关注整个页面刷新,这是提交数据的过程。因为是异步的所以提交@ResponseBody。完成关注后还要获取关注数量,关注状态还需要去改变。为了注入用户首先引入hostholde。关注的逻辑是定义在profile的js中。取消关注 remove不用传分数。关注数量,粉丝数量,是否已关注,实现关注和取消关注的方法。

2022-11-08 21:36:52 297

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——我收到的赞

查询写在事务值外,查询写在事务之内不会立刻得到结果,事务过程中没有立刻执行,而是放到队列里,当你提交事务的时候统一提交。当页面传入参数后,就传入方法。在Redis中增加一个Key。

2022-11-08 20:35:28 166

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——Spring整合Redis

在execute中内部需要传一个接口的示例,我们可以做一个匿名的实现,在SessionCallback接口中重写了execute。return是提交事务。启用事务之后,在去执行Redis命令,不要在事务中间去查询。要么在事务之前要么在事务提交以后查询。基于此我们通常使用编程式事务。SpringBoot 对Redis进行自动配置的类是RedisAutoConfiguration。简化的方案,绑定key,可以反复访同一可以。Redis的配置文件,配置数据库参数。Redis支持事务,不满足ACID。

2022-11-08 13:30:00 135

原创 【仿牛客网笔记】 Redis,一站式高性能存储方案——Redis入门

Redis的官网没有提供Windows的安装包。以日志的形式每执行一次就存入到硬盘中,可以做到实时的存储以不断追加的形式存储的。Redis内置16个库,没有名字,使用索引区分,即0-15默认选择的是第0个。Redis是一个非常好用的工具,性能好,类型完善,使用的话非常的简单。有序的集合:给每一个值,添加了一个分数,根据 分数就排序。以快照的形式 不适合实时的去做,适合一段时间做一次。集合:列表有序的,集合无序的,集合中的值不可以重复。查看列表的长度,某一个位置的值,某一范围的值。可以通过select选择。

2022-11-07 13:00:00 285

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-显示评论

判断一个集合,如果非空就遍历,每次遍历就会的到一个Comment,把他们封装到Map中。封装评论的作者、通过id方法查找,每一条评论也有评论,所以也要显示评论的评论,即为回复。查询评论,需要依赖评论的Service,注入CommentService。我们不仅仅查询帖子的数据还需要查询评论的数据还要支持分页。分页查询需要两个数据,一个是分页查询需要多少数据,还要提供一个方法查询一共有多少数据,走的页数。另外查询条件的数目,返回的是整数,参数是一致的。显示评论的作者,需要动态的去头像。在li中添加循环的语句。

2022-11-06 09:00:00 240

原创 39、链表相加(二)

既然链表每个节点表示数字的每一位,那相加的时候自然可以按照加法法则,从后往前依次相加。例如:链表 1 为 9->3->7,链表 2 为 6->3,最后生成新的结果链表为 1->0->0->0。数据范围:0≤n,m≤10000000≤n,m≤1000000,链表任意值 0≤val≤90≤val≤9。即可得到个十百千……再次反转,结果不就正常了。假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数。要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

2022-11-05 18:00:00 48

原创 40、单链表的排序

常规数组的归并排序是分治思想,即将数组从中间个元素开始划分,然后将划分后的子数组作为一个要排序的数组,再将排好序的两个子数组合并成一个完整的有序数组,因此采用的是递归。双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个指针(特殊情况甚至可以多个),两个指针或是同方向访问两个链表、或是同方向访问一个链表(快慢指针)、或是相反方向扫描(对撞指针),从而达到我们需要的目的。要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)方法一:归并排序(推荐使用)

2022-11-05 15:45:00 64

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-私信列表

声明一个集合,将数据放入到Map中,遍历列表构造Map,将信息,信息数量,未读数量,还需要显示当前用户与之相对的,需要找到目标,判断id是否等于消息的发起者目标就是接受者。声明一个方法处理私信列表,先声明访问路径,请求方式GET,传数据需要用到Model,需要分页需要Page,为了方法的实现需要注入Service,另外还需要注入HostHolder,当前用于需要它获取。表现层的开发,需要两个功能,一个是会话列表,一个是私信详情,都是分页显示数据。第二个方法查询数量,返回整数,类型为整型。

2022-11-05 12:30:00 615

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-事务管理

乐观锁需要我们去实现,总是乐观的看待问题,即是并发了也不会认为有问题,该什么操作什么操作,如果遇到了什么问题再去加锁。当我们更改数据的时候我们去看数据有没有变,如果变了,在处理的过程中有人改了,我们应该放弃这次 操作,否则我们就提交数据。模拟需求为注册一个用户user,第二步自动的给用户发一个帖子,一个业务 中有两个增加的操作,业务中需要保证事务。数据库保障数据的机制,两种实现方式,一种是悲观锁,另一种是乐观锁。选择时既能满足业务的需要,又能保证业务的安全性,在这样的前提下我们追求一个更高的性能。

2022-11-04 21:00:00 576

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-统一记录日志

利用框架进行一个织入的行为weaving 把方面组件的代码,织入到目标对象,这是框架提供的功能。编译时织入:代码在运行的时候已经织入好了,运行速度快。连接点JoinPoint织入目标对象位置,织入属性上,构造器上,静态上,成员方法里。业务组件的一开始记录日志,记录日志的格式,用户某某在某一个时刻访问了某功能某方法。需要定义两个内容,第一个切点,织入到那些bean的具体的位置。target:目标对象,处理业务组件的需求就是目标对象。不发生异常也进行处理,拦截器是对控制组件的处理。声明切点,通过表达式声明。

2022-11-04 17:55:22 390 1

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-统一处理异常

报名一定是error,名字一定是状态404/500。没有显示是因为没有对模板进行配置。在首页中添加500的处理。Spring有统一处理。

2022-11-04 17:00:36 108

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-发送私信

需要提交数据所以需要POST,因为是异步请求所以需要注解@ResponseBody,参数为发送人和发送内容。对于集合,通过foreach遍历拼成最后一个结果。给人私信或给具体某人回信,私信成功提示成功。补充findUserByName()方法。id小的在前,大的在后。

2022-11-04 16:32:42 409

原创 38、 两个链表的第一个公共结点

输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第三段是第一个链表和第二个链表的公共部分。让N1和N2一起遍历,当N1先走完链表1的尽头(为null)的时候,则从链表2的头节点继续遍历,同样,如果N2先走完了链表2的尽头,则从链表1的头节点继续遍历,也就是说,N1和N2都会遍历链表1和链表2。使用两个指针N1,N2,一个从链表1的头节点开始遍历,我们记为N1,一个从链表2的头节点开始遍历,我们记为N2。(N1最后肯定能到达链表2的终点,N2肯定能到达链表1的终点)。

2022-11-03 10:45:00 50

原创 37、 删除链表的倒数第n个节点

思路: 我们无法逆序遍历链表,就很难得到链表的倒数第nnn个元素,那我们可以试试反过来考虑,如果当前我们处于倒数第nnn的位置上,即距离链表尾的距离是nnn,那我们假设双指针指向这两个位置,二者同步向前移动,当前面个指针到了链表头的时候,两个指针之间的距离还是nnn。数据范围: 链表长度 0≤n≤10000≤n≤1000,链表中任意节点的值满足 0≤val≤1000≤val≤100。要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)给出的链表为: 1→2→3→4→5, n=2。

2022-11-03 10:00:00 48

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-发布帖子

我们需要一个网页,网页中写入JQuery的代码,写一个段落,段落中有一个按钮,按钮点击的时候就发送异步请求,触发单击事件send方法。引入JQuery后通过Script标签实现send()方法,首先加入访问的路径,然后加入需要访问的数据,还需要一个匿名的回调函数,console.log控制台输出。在页面加载完之后,获取发布按钮,发布按钮定义了单击事件,单击事件的方法 ,显示提示框,2秒之后隐藏。添加方法后,首先判断,如果为空抛出异常,过滤敏感词,title,context过滤敏感词。报错的情况统一处理。

2022-11-03 09:00:00 458

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-添加评论

添加完评论后跟新评论的数量,更新帖子的评论数量。count查询数量然后,根据帖子id更新。添加评论并过滤敏感词,将内容放入到库中。判断参数,评论的内容不能为空。首先传入类型,然后传入id。

2022-11-02 21:39:57 107

原创 36、链表中倒数最后k个结点

我们无法逆序遍历链表,就很难得到链表的倒数第k个元素,那我们可以试试反过来考虑,如果当前我们处于倒数第k的位置上,即距离链表尾的距离是k,那我们假设双指针指向这两个位置,二者同步向前移动,当前面个指针到了链表头的时候,两个指针之间的距离还是k。双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个指针(特殊情况甚至可以多个),两个指针或是同方向访问两个链表、或是同方向访问一个链表(快慢指针)、或是相反方向扫描(对撞指针),从而达到我们需要的目的。

2022-11-02 14:45:00 54

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-帖子详情

开发数据访问层,加一个增加帖子,查看帖子的方法。业务层增加一个查询方法,表现层出了查询Controller之外还要在Index.html中在梯子标题上增加访问详情页面的连接。discuss-detail.html处理静态资源的访问路径等操作。根据帖子的id查询帖子的详情。方法的实现,打开对应的配置文件。

2022-11-02 14:39:32 77

原创 【仿牛客网笔记】 Spring Boot进阶,开发社区核心功能-过滤敏感词

进行下一个节点的操作,即指向当前节点的子节点,进入下一轮,当循环到最后一个要打一个标记。第三步:关键的方法,编写实现过滤敏感词的方法,返回String,即处理替换掉的结果,参数是一个文本。首先定义好敏感词, 假设用户输入的内容 为xwabfabcff,利用算法看看有没有敏感词,这个算法就是前缀树,前缀树的根节点是没有任何字符的,出了根节点的每个节点都包含一个节点,根节点到某一个节点的路径上连接起来就是当前节点的字符串,每个节点的子节点是不同,如果是相同的话就合并。第二步:根据敏感词,初始化前缀树。

2022-11-02 09:30:57 484

原创 【仿牛客网笔记】Spring Boot实践,开发社区登录模块-账号设置,检查登录

有可能是空的,需要判定一下,如果不是空但是没有登录,这个时候就return false拒绝请求,然后给出反应response去做重定向。重定向到LongIn。添加@Component注解,实现HandlerIntercptor注解,重写PreHandler,判断与没有登录,尝试的获取,注入HostHolder,判断拦截的目标是不是一个方法。注入日志对象后,通过@Value将上传路径的值、域名的值、还需要项目的访问路径,还需要用到userservice,userServce注入,还有注入hostHold.

2022-11-01 20:51:35 228

原创 35、链表中环的入口结点

描述给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。数据范围: n≤10000n≤10000,1

2022-11-01 15:30:00 47

原创 【仿牛客网笔记】Spring Boot实践,开发社区登录模块-显示登录信息

这个凭证关联的是用户,我们很容易通过一张表Login_ticket查询到用户,其实是用户的id.我们最终是运用到模板上,所以将通过id的到user放入到model中,就可以提交给模板,最终模板向浏览器响应生成了一个HTML。postHandler的参数与preHandler的参数一样以外,还具有ModelAndView参数,因为该方法是在Controller之后执行,此时主要的逻辑请求处理已经 完成了,下一步主要模板引擎,给页面返回渲染的内容,因此在模板引擎中可能需要用到获取数据或封装数据。

2022-11-01 15:12:50 358

空空如也

空空如也

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

TA关注的人

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