自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rust基础学习

rust基础学习

2022-08-08 14:37:52 1129 1

原创 java二维数组排序

Arrays.sort(points, (a, b) -> { //如果第一位相等,按第二位排序 if (a[0] == b[0]) return Integer.compare(a[1],b[1]); return Integer.compare(a[0],b[0]);});point为待排序数组a,b为选取的两个比较对象使用Integer.compare()而不用a[0]-b[0]的原因若a[0]-b[0]的值超过2147483647,即int类型能保存的最大数

2022-05-15 16:40:19 735

原创 多线程详解

java线程(Java.Thread)一、线程简介1.多任务现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。2.多线程原来是一条路,慢慢因为车太多了,道路阻塞,效率极低。为了提高使用的效率,能够充分利用道路,于是加了多个车道。3.普通方法调用和多线程4.Process与Thread程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程则是执行程序的依次执行过程,它是一个动态的概念

2022-05-02 20:29:53 413

原创 quartz实现多线程分布式定时更新帖子分数

帖子分数公示:log10(加精分数+帖子评论10+帖子点赞2)+(帖子发布时间-网站纪元)一、引入依赖<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>

2022-04-27 00:58:14 214

原创 Spring Security进行权限控制

一、SpringSecurity介绍简介SpringSecurity是一个专注于java应用程序提供身份认证和授权的框架,它的强大之处在于它可以轻松扩展以满足自定义的需求特征– 对身份的认证和授权提供全面的、可扩展的支持。– 防止各种攻击,如会话固定攻击、点击劫持、csrf攻击等。– 支持与Servlet API,Spring MVC等web技术支持SpringSecurity底层是通过11钟过滤器进行实现,属于JavaEE层面SpringSecurity底层详解网站推荐:http://

2022-04-21 17:19:24 5492 2

原创 Elasticsearch 8.1.2学习

1、elasticsearch是什么ELKELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。市面上也被成为Elastic Stack。Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大。Logstash是ELK的中央数据流引擎,用于从不同目标(

2022-04-18 22:20:23 2099 1

原创 kibana配置

server.port:默认值: 5601 Kibana 由后端服务器提供服务,该配置指定使用的端口号。server.host:默认值: “localhost” 指定后端服务器的主机地址。server.basePath:如果启用了代理,指定 Kibana 的路径,该配置项只影响 Kibana 生成的 URLs,转发请求到 Kibana 时代理会移除基础路径值,该配置项不能以斜杠 (/)结尾。server.maxPayloadBytes:默认值: 1048576 服务器请求的最大负载,单位字节.

2022-04-18 15:12:36 392

原创 kafka学习

一、消息队列1.解决多个服务之间通信的方法同步– 网络通信等原因,每个服务之间可能有很大的响应时间和开销– 整个流程中的服务全部顺利执行完才会成功,用户体验极差异步– 上游将所需的服务放到消息队列中,下游服务与消息队列采用生产者-消费者模型完成服务– 上游服务即刻成功并进行反馈,提升系统吞吐量与用户体验– 即使下游有服务失败,也可以通过分布式事务来解决保证最终一致性实质:消息队列解决的是通信问题...

2022-04-16 13:44:10 1865

原创 zookeeper 学习

1 zookeeper介绍1.1 应用场景分布式协调组件协调分布系统状态分布式锁zk可以做到强一致性(顺序一致)无状态话的实现类似于分布式session1.2 zk配置# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of

2022-04-12 21:43:05 1326

原创 Redis学习

redis-benchmarkredis性能测试以下参数被支持:Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>] -h <hostname> Server hostname (default 127.0.0.1) -p <port> Server

2022-04-07 20:35:29 190

原创 AOP编程实现统一记录日志

什么是AOPAspect Oriented Programming面向切面编程AOP是一种编程思想,是对OOP的补充可以进一步提高编程效率AOP术语Target:目标类JoinPoint:连接点织入代码的位置Weaving:织入– 编译时织入:效率高,但程序尚未运行对运行情况了解不详细不充分– 运行时织入:能够对运行的程序有充分的了解,但效率较低Ascept:切面– pointCut:切点– Advice:实现具体逻辑的位置非AOP编程的日志处理public cla

2022-04-03 20:58:04 593

原创 spring 异常处理

表现层(Controller)处理异常由于在三层架构中异常抛出逐级给上层处理,因此我们只需在表现层处理异常即可。统一处理异常@ControllerAdvice– 由于修饰类,表示该类是Controller的全局配置类。– 在此类中,可以对Controller进行如下三种全局配置:异常处理方案绑定数据方案绑定参数方案@ExceptionHandler– 用于修饰方法,该方法会在Controller出现异常后被调用,用于捕获到的异常。@ModelAttribute– 用于修饰方法,该

2022-04-02 22:45:15 829

原创 springboot 实现帖子详情及评论

1.帖子详情及评论接口@GetMapping("/detail/{discussPostId}")public String getDiscussPost(@PathVariable("discussPostId") int postId, Model model, Page page) { //帖子 DiscussPost post = discussPostService.findDiscussPostById(postId); model.addAttribute("pos

2022-03-30 19:14:51 803

原创 spring 事务管理

什么是事务事务是由N步数据库操作序列组成的逻辑执行单元,这系列操作要么全执行,要么全放弃。事务的特性(ACID)原子性(Atomicity):事务是应用中不可再分的最小执行体一致性(Consistency):事务执行的结果,须使事务从一个一致性状态,变为另一个一致性状态。隔离性(Isolation):各个事务的执行互不干扰,任何事务的内部操作对其他事务都是隔离的。持久性(Durability):事务一旦提交,对数据所做的任何改变都要记录到永久存储器中。事务的隔离性常见的并发异常–

2022-03-29 23:09:25 101

原创 springboot+ajax 实现网站发帖

1.引入依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.80</version></dependency>2.service层对帖子内容进行处理@Overridepublic int addDiscussPost(DiscussPost di

2022-03-27 21:58:59 673

原创 springboot 实现自动屏蔽敏感词过滤器

1.编辑敏感词文本(.txt)按行写入2.编写过滤器(1)创建前缀树保存敏感词//前缀树private class TireNode { //关键词结束标志 private boolean isKeywordsEnd = false; //key是下级字符,value是下级节点(root为null) private Map<Character, TireNode> sonNode = new HashMap<>(); public

2022-03-27 19:27:28 2116

原创 springboot 注解+拦截器实现客户端拦截访问不合法路径

1.自定义注解//作用域@Target(ElementType.METHOD)//运行时间@Retention(RetentionPolicy.RUNTIME)public @interface LoginRequired {}2.自定义拦截器@Componentpublic class LoginRequiredInterceptor implements HandlerInterceptor { @Autowired private HostHolder hostHo

2022-03-26 22:02:54 939

原创 springboot用户上传头像

用户上传头像流程1.图片上传至服务器@PostMapping("upload")public String uploadHeader(MultipartFile headerImage, Model model) { //判断图片是否为空 if (headerImage == null) { model.addAttribute("error", "请先上传图片!"); return "/site/setting"; } //判断图片是

2022-03-25 18:47:48 2708

原创 springboot拦截器保存登录信息(ThreadLocal)

1.ThreadLocal是什么从名字我们就可以看到ThreadLocal 叫做本地线程变量,意思是说,ThreadLocal 中填充的的是当前线程的变量,该变量对其他线程而言是封闭且隔离的,ThreadLocal 为变量在每个线程中创建了一个副本,这样每个线程都可以访问自己内部的副本变量。1、在进行对象跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束。2、线程间数据隔离3、进行事务操作,用于存储线程事务信息。4、数据库连接,Session会话管理。内部实现创建

2022-03-25 13:20:45 4732 2

原创 springboot实现登录界面

写在前面:登录涉及到存放用户信息,应该选择session还是cookie?1.实体类(LoginTicket)用数据库保存登录状态@Datapublic class LoginTicket { private int id; private int userId; private String ticket; private int status; private Date expired;}2.Mapper层@Mapperpublic interf

2022-03-13 17:24:46 8266 1

原创 cookie与session如何选择?

cookie与session的选择cookie– 存放在客户端,服务器压力小– 只能存放字段,存放内容有限– 重要信息(密码等)存入不安全session– 存放在服务器,太多会导致服务器压力大– 在服务器因此存放信息安全– 能存放较多数据– 基于cookie实现(session_id要通过cookie传送)若服务器较多需要使用Nginx提供负载均衡时:将session共享与每个服务器– 优点:服务器可以实现负载均衡,不会出现粘性负载– 缺点:共享session开销较大将

2022-03-13 17:23:10 2781

原创 springboot验证码功能实现

1.引入pom<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>2.编写配置类(KaptchaConfig)@Configurationpublic class KaptchaConfig

2022-03-13 12:32:39 684

原创 springboot注册功能及邮箱验证的功能

1.发送邮件工具的编写参考:邮件工具的编写2.在UserService中实现对前端提交数据的验证服务@Overridepublic Map<String, Object> register(User user) { Map<String, Object> map = new HashMap<>(); if (user == null) { throw new IllegalArgumentException("参数不能为空");

2022-03-12 16:50:08 388

原创 springboot邮件发送及相关问题

1.添加pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.6.4</version> </dependency>2.编写配置文

2022-03-11 20:38:12 645

原创 NIO网络编程

一、阻塞模式服务端public class server { public static void main(String[] args) throws IOException { //用 nio 来理解阻塞模式单线程 //ByteBuffer ByteBuffer buffer = ByteBuffer.allocate(16); //1.创建服务器 ServerSocketChannel ssc = Server

2022-03-11 10:29:39 519

原创 springboot自动分类存储开发日志

<?xml version="1.0" encoding="UTF-8"?><configuration> <contextName>community</contextName> <!-- 存放的总文件夹 --> <property name="LOG_PATH" value="E:/ideaWorkPlace/logger/nowcoder"/> <!-- 该项目的文件夹 -->

2022-03-11 10:27:57 370

原创 springboot项目错误(sqlsession或sqlsessionFactory未创建)

java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.

2022-03-10 19:34:47 944

原创 SSM框架整合

准备工作导入依赖 <dependencies><!-- 测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </depen

2022-01-28 16:07:05 65

原创 NIO基础学习

Channel一、ByteBuffer正确使用方法一次读文件//FileChannel //1.输入输出流。2.RandomAccessFile try (FileChannel channel = new FileInputStream("data.txt").getChannel()) { //准备缓冲区 ByteBuffer buffer = ByteBuffer.allocate(10);

2021-12-12 21:26:33 407

空空如也

空空如也

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

TA关注的人

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