![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java后端
文章平均质量分 84
野生java研究僧
离开那些世俗繁绕,只为这一刻清净
展开
-
nginx实战
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。原创 2023-07-27 21:51:32 · 1163 阅读 · 0 评论 -
bean和xml相互转换工具类
① 常用APIJAXBContext类,是应用的入口,通过该类创建序列化和反序列化对象,也即编组对象和解组对象;Marshaller 编组接口,将Java对象序列化为XML数据;Unmarshaller 解组接口,将XML数据反序列化为Java对象。② 常用注解@XmlRootElement,将Java类或枚举映射成XML元素根节点,是唯一一个必须注解,name属性指定根节点名称,不指定默认为类名的小写;原创 2023-07-25 21:24:54 · 1003 阅读 · 0 评论 -
zookeeper学习笔记
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。Zab 借鉴了 Paxos 算法,是特别为 Zookeeper 设计的支持崩溃恢复的原子广播协议。基于该协议,Zookeeper 设计为只有一台客户端(Leader)负责处理外部的写事务请求,然后Leader 客户端将数据同步到其他 Follower 节点。即 Zookeeper 只有一个 Leader 可以发起提案。原创 2023-05-29 08:48:52 · 892 阅读 · 0 评论 -
idea注释模板开发配置
良好的注释规范从这里开始,一键生成漂亮的注释,还可以配合smartdoc完美生成开发文档原创 2023-05-29 08:46:38 · 594 阅读 · 0 评论 -
SpringSecurity从入门到源码分析
security的入门到源码分析,看完后你将了解什么是security,如何在springboot应用中使用,以及如何集成多端登录,他的执行流程是怎么样的?以及如何自定义权限控制,已经过滤器执行流程。原创 2023-03-21 22:08:36 · 885 阅读 · 0 评论 -
简单粗暴的分布式定时任务解决方案
因为有时候我们需要定时的执行一些操作,比如业务中产生的一些临时文件,临时文件不能立即删除,因为不清楚用户是否操作完毕,不能立即删除,需要隔一段时间然后定时清楚,还有像是一些电商项目,每月进行数据清算。比如某些业务的排行榜,实时性不是高的也可以使用定时任务去统计,然后在做更新。当然技术是为业务服务的,我们怎么选择合适的技术,还得是看业务场景,比如一些任务的执行频率不高,也不是特别要求效率,也不复杂,我们完全用不上为了一个定时任务去引入一些第三方的框架作为定时任务实现,我们来介绍两种方式来实现分布式定时任务。原创 2023-03-10 23:13:05 · 1538 阅读 · 3 评论 -
docker-微服务篇
学习docker的前提:熟悉linux基本命令和熟悉git命令。是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器实例(类似Java中new出来一个对象)。分层的镜像以我们的pull为例,在下载的过程中我们可以看到docker的镜像好像是在一层一层的在下载。原创 2023-02-12 11:53:10 · 761 阅读 · 0 评论 -
自定义参数校验以及统一处理结果集
统一返回值类型无论项目前后端是否分离都是非常必要的,方便对接接口的开发人员更加清晰地知道这个接口的调用是否成功(不能仅仅简单地看返回值是否为 null 就判断成功与否,因为有些接口的设计就是如此),使用一个状态码、状态信息就能清楚地了解接口调用情况/*** code 200 表示业务处理成功,-200表示业务处理失败/*** 存放业务提示信息/*** subCode 10000 表示10000请求成功 -10000表示请求处理失败/*** 存放系统异常消息/**原创 2023-02-05 18:09:21 · 624 阅读 · 0 评论 -
RabbitMq学习笔记
MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不 用依赖其他服务。Fanout 这种类型非常简单。正如从名称中猜到的那样,它是将接收到的所有消息广播到它知道的 所有队列中。系统中默认有些 exchange 类型。原创 2023-02-05 03:13:32 · 979 阅读 · 0 评论 -
深入jvm字节码
java声称一次编译,到处运行,这与他的jvm实现有关,java语言是和平台无关的,是可以跨操作系统的,但是jvm缺不能,不同的jvm帮我们屏蔽了不同的操作系统,java语言编写的同一份代码,不同的jvm虚拟机实现,会帮我们编译成不同的二进制文件。下面我们一输出hello world 来开始我们的class文件探索之旅。使用javac 命令编译 Hello.java即可得到class文件,然后再用16进制显示文件内容即可得到下面的内容。可以使用 EditPlus.exe 然后查看的时候选择utf-8的编码原创 2022-12-18 14:36:17 · 792 阅读 · 0 评论 -
Jackson注解自定义数据脱敏策略
有时候,我们返回给前端的数据需要脱敏,避免用户信息被泄漏,就像你点外卖一样,京东或淘宝购物一样,手机号,姓名这些字段是被脱敏后的,在这个大数据时代,用户的数据安全是及其重要的。我们如何对用户统一数据进行脱敏处理呢?如果我们自定义脱敏方式,使用一个工具类,被改字段传递进去,脱敏后返回新的字符串,那这样是很多地方需要手动去编写很多重复的代码,而且不利于维护,比如是单个bean,或者是list的时候还要去遍历一次list。有没有什么方法统一处理呢?我们定义好脱敏规则,只需要在需要脱敏的字段上加上一个注解即可。原创 2022-12-11 19:13:04 · 632 阅读 · 0 评论 -
maven学习手册
jar包不统一,jar包不兼容导致项目问题工程升级维护过程操作繁琐maven作为一个构建工具,不仅能帮我们自动化构建,还能够抽象构建过程,提供构建任务实现;它跨平台,对外提供了一致的操作接口,这一切足以使它成为优秀的、流行的构建工具。Maven不仅是构建工具,还是一个依赖管理工具和项目管理工具,它提供了中央仓库,能帮我自动下载构件。Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型POM(Project Object Model:项目对象模型)Maven是由java语言开发,它原创 2022-12-10 15:42:13 · 967 阅读 · 0 评论 -
java操作ftp上传下载
文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层,TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。FTP也是一个应用程序,基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。可以使用FTP进行下载和上传。原创 2022-10-31 20:49:49 · 907 阅读 · 0 评论 -
SpringSecruity权限管理系统
因为一直想找一个权限管理系统参考一下,没想到尚硅谷最近更新了一套,我没有看视频,我是直接把源代码找到,然后看了一遍,然后感觉设计上还可以,对于没有做过权限管理系统的小伙伴来说,这个demo还是比较友好,有参考价值,但是其中,有2个问题,1是如果用户是在登录的情况被别人禁用了,还是能正常使用系统,我在这个地方做了改进,2是后台接口貌似没有做每个接口的细致校验,只是在前端展示的时候,过滤了一些菜单而已,我在地址栏中增加了apiPathId,通过apiPathId对每个用户的每个接口都做了细致的校验。原创 2022-10-30 06:17:48 · 339 阅读 · 2 评论 -
手写一个简易的lombok
在面向对象编程中,必不可少的需要在代码中定义对象模型,而在基于Java的业务平台开发实践中尤其如此。相信大家在平时开发中也深有感触,本来是没有多少代码开发量的,但是因为定义的业务模型对象比较多,而需要重复写Getter/Setter、构造器方法、字符串输出的ToString方法、Equals/HashCode方法等。我们都知道Lombok能够替大家完成这些繁琐的操作,但是其背后的原理很少有人会关注或者说得清,本文会带着大家了解这一开发神器内部的运行机制与原理!原创 2022-10-14 14:48:19 · 1788 阅读 · 6 评论 -
java设计模式详解
通过本文章,你可以了解到常用的设计模式,本文的设计模式都是通过java语言进行讲解的,这也是我个人的一个学习笔记,设计模式以及数据结构和算法可能实际开发中用不到,但是这是程序员的基本功,这也就是你看框架源代码的时候头晕,看不懂,不知道别人到底写的什么玩意儿。那么你该静下心来好好学习基础知识了,记住一句话,罗马不少一天建成的,万丈高楼平地其,一切都以基础为准,框架层出不穷,但是万变不离其宗,都是以我们的核心基础知识来的。学完设计模式,你对写代码的一个水平会有一个很好的提升。设计模式的目的编写软件过程中,程序员原创 2022-10-08 16:53:07 · 1583 阅读 · 2 评论 -
jsencrypt.js加密java后端解密
因为我想做一个数据加密,就开始了解Rsa加密算法,实现一个前端加密,后端解密的一个过程,然后我也不想重复造轮子,就上百度搜索,发现好多文章都是抄来抄去去的根本不合适。所以只好自己写了一个记录,以便到时候要用的时候再看,前端使用jsencrypt.js进行加密,然后在使用的时候我发现这个内容过长无法加密,然后又找了个扩展的,可以使用长内容加密,但是到后台解密的时候出问题了,无法解密出正确内容,我只好换回原理的版本,然后自己重写了两个方法来进行扩展,实现长内容加密。这个改进后的方法按理论可以进行很大文本文本加密原创 2022-09-01 22:20:28 · 4879 阅读 · 0 评论 -
java给对象按照字符串属性进行排序
在java中对象进行排序,排序的属性是string,我们只需要实现Comparator接口,然后实现比较的方式。public class StringSort { public static void main(String[] args) { test1(); } // 方式1: public static void test1(){ JSONObject jsonObject = JSONObject.parseObject("{\原创 2022-04-08 21:40:22 · 1263 阅读 · 0 评论 -
熬夜总结的2022java面试题
2022java面试题原创 2022-04-08 20:22:28 · 1643 阅读 · 0 评论 -
springBoot-mybatis+druid多数据源
springBoot多数据源AbstractRoutingDataSource引入依赖配置文件动态数据源配置实体类mapper层servicecontrollersql文件配置多数据源有多种方式,这里使用的是AOP动态代理的方式进行动态切换的。所谓的动态数据源就是,多个数据源,可以进行切换,比如读写分离,读是一个数据源,写又是一个数据源。不过使用这种方式配置的动态数据源不适合动态扩展,当需要新增数据源的时候,只能重启服务进行重新配置,当然也可以使用nacos配置中新做动态刷新,我只是想到可以怎么做,但是具原创 2022-03-06 18:50:33 · 1359 阅读 · 0 评论 -
springboot+elementUi实现评论功能,支持回复,点赞功能
评论功能实现1.概述2.前端代码1.html2.css3.js4.api调用后台接口3.后端代码1.数据库SQL2.实体类3.daoMapper4.daoMapper实现5.service接口6.service接口实现7.controller1.概述做一个项目,突然需要实现回复功能,所依记录一下此次的一个实现思路,也希望给别人分享一下,估计代码还是不够完善,有空在实现分页功能。话不多说直接看效果图。主要实现了评论,回复,点赞,取消点赞,如果是自己评论的还可以删除,删除的规则是如果该评论下还有回复,也一并原创 2022-01-24 23:19:52 · 10674 阅读 · 20 评论 -
java后端参数校验validaction(用法详解)
validaction详解1.前言2.初体验3.JSR校验注解4.Hibernate Validator校验注解:5.分组校验6.级联校验7.自定义注解8.快速失败校验9.非Bean入参校验10spring mvc vaildaction校验1.前言beanvalidation官网:https://beanvalidation.org/(是规范,api接口)hibernate官网:https://hibernate.org/validator/(是beanvalidation的最佳实现)添加依赖包原创 2021-11-08 23:12:50 · 1379 阅读 · 1 评论 -
idea配合gitee使用
git1.git简介2.新建本地仓库3.将代码提交到远程仓库4.idea中直接克隆远程仓库代码5.gitee线上更改代码6.代码冲突问题7.git分支的管理8.代码版本的回退1.git简介无论是自己开发,还是在公式开发,都是必须要会git的,因为git真的是太香了,有一个免费存放代码的地方,而且还可以快速的回退到某个版本,各个版本之间的差异对比一目了然,就这几个优点,你就没有理由不学git,接下来我采用图文并茂的方式为大家介绍一一下,开发中常见的使用。注意:最好是会一点点git基础再看此文章,会有意想原创 2021-08-04 02:24:41 · 960 阅读 · 0 评论 -
mybatis执行流程源码分析
1.简介MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路。2.mybatis框架设计架构接口层与数据库交互的方式:1.mybatis提供的传统API的方式,通过SqlSession对象进行调用2.使用mapper接口,使用xml的方式配置sql这是传统的传递Statement Id 和查询参数给 SqlSession 对象,使用 SqlSession对象完成和数据库的交互;MyBatis 提供了非常方便和简单的API原创 2021-06-28 18:09:13 · 107 阅读 · 1 评论 -
别错过这个ssm前后端分离项目
ssm项目1.简介2.项目概述1.简介这是项目采用的前端采用的是界面非常漂亮的layuimin,后端采用 mybatis,spring,springMVC,集成了log4j,druid连接池,swagger,是一个很不错的ssm框架学完后的练手项目,如果你刚刚学完ssm,苦于没有项目练手的朋友,你可以下载下来,练练手,前端后端功能差不多已经全部实现,也奉上了完整的sql,导入数据库运行即可。课余时间花了几天时间写完的,还有很多地方需要优化,基本功能是差不多完成了,后面还会提交新的代码,增加新的功能,欢原创 2021-06-11 23:10:37 · 3800 阅读 · 18 评论 -
ssm实现记住账号密码(cookie)
cookie实现记住账号密码1.需要实现的功能?2.实现思路3.后端代码1.需要实现的功能?在我们登陆的时候,页面有一个记住密码的单选框,如果用户勾选了记住密码,那么下次登陆的时候,就无需输入密码是直接登陆的。看,大概就是这样界面。2.实现思路1.使用cookie技术在使用他之前,我们先来看下,什么是cookie?cookie就是保存在客户端的值,也就是浏览器,保存至客户端电脑的本地,也就是说,我们可以把账号和密码放在cookie中,也就是在用户提交登陆的表单中,通过获取单选框中的值,判断用原创 2021-06-07 10:37:34 · 1887 阅读 · 2 评论 -
不会还有人不知道mybatis的关联查询吧?
前言:我也是花了好久的时间进行思考,该如何把这个发展的关联查询给描述出来,来今天我们就来看看这个mybatis关联查询到的是怎么样进行关联的,码字不易,如果你觉得该文章对你有用请一键三连。mybatis关联查询1.数据库表和实体类关系分析:2.数据库表准备:3.mybatis关系映射标签说明:4.具体代码实现过程:1.实体类2.dao层3.mybatis工具类4.测试代码1.数据库表和实体类关系分析:数据库表之间的关系无非就是三种:一对一,一对多,多对多1.首先需要搞懂一对一,一对多,对多之间的关系原创 2021-05-27 15:57:36 · 133 阅读 · 1 评论 -
ssm一套走通到整合
Mybatis:ORM:Object Relationa Mapping:即对象关系映射,ORM是一种规范,它是是将数据库的记录与实体类对象进行一一映射。MyBatis官网地址(中文版):https://mybatis.org/mybatis-3/zh/index.htmlMyBatis的功能架构:MyBatis执行流程:1.mybatis基本使用web开发的三层架构 (mvc )三层架构界面层: 和用户打交道的, 接收用户的请求参数, 显示处理结果的。(jsp ,html ,serv原创 2021-05-23 22:26:44 · 1104 阅读 · 15 评论 -
ztree+ajax实现文件树下载功能
基于java实现文件树下载0.项目准备工作1.效果展示:2.思路分析3.前端实现代码:0.项目准备工作1.前端用到的插件库:ztree官网:http://www.treejs.cn/v3/main.php#_zTreeInfo2.后端maven依赖:<dependencies> <!-- servlet依赖 --> <dependency> <groupId>javax.servlet</groupId> <原创 2021-05-15 16:05:09 · 235 阅读 · 3 评论 -
SpringMVC文件上传与下载
SpringMVC0.环境准备1.文件上传2.文件下载0.环境准备1.maven依赖 <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.7.0</version>原创 2021-05-11 20:26:12 · 79 阅读 · 1 评论 -
springmvc返回值处理
使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型:➢ 第一种:ModelAndView➢ 第二种:String➢ 第三种:无返回值 void➢ 第四种:返回自定义类型对象根据不同的情况,使用不同的返回准备工作:1.导入需要的依赖: <dependencies> <!-- junit测试依赖 --> <dependency> <groupId>org.junit.jupiter<原创 2021-04-21 17:29:07 · 678 阅读 · 2 评论 -
你真的了解HashSet集合么?
HashSet集合1.带着问题学习?2.问题答案:3.源码分析,证明答案概述:你真的了解HashSet集合么?用了怎么久的集合你真的了解集合么?**注意:该文章是基于JDK8讲解的**那不妨先看几个问题,如果你都能知道那么就说明你真的了解,如果感觉似曾相识,但是又说不上来,那么就是认真的往下看吧?想要看懂集合源码需要具备哪些知识?数据结构和算法,javaSE的面向对象,进制转换,以及java的一些运算符,比如位移,异或等等。理解源码的方式就是打断点一步一步的跟踪,看源代码是如何执行的,遇到看不懂原创 2021-04-13 22:44:11 · 314 阅读 · 0 评论 -
spring事务(xml和完全注解方式)
实现简介:使用spring事务管理,联系两个用户之间转账问题,如果转账中途中出现异常,那就一起回滚不提交事务。1创建数据库表SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (原创 2021-04-07 10:02:11 · 189 阅读 · 1 评论 -
springJDBC增删改查,批量操作,分页查询
springJDBC1.准备数据库表2.导入maven依赖3.SpringConfig.xml配置文件4.entity(实体类)5.Dao(层代码)6.Service(层代码)7.集成spring5测试8.注意点补充:1.准备数据库表/* Navicat Premium Data Transfer Source Server : WindowsMysql Source Server Type : MySQL Source Server Version : 50732 S原创 2021-03-31 14:54:58 · 397 阅读 · 0 评论 -
docker学习
尚硅谷docker笔记1.docker简介2.docker安装3.docker 常用命令尚硅谷阳哥docker学习笔记 视频连接地址:尚硅谷Docker快速入门基础篇-周阳主讲1.docker简介学习docker的前提:熟悉linux基本命令和熟悉git命令。1.1为什么会出现docker?一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员原创 2021-03-23 20:13:10 · 284 阅读 · 0 评论 -
SpringDataJpa
springData-JPA1.概述:2.jpa入门案例3.主键生成策略4.工具类的提取5.jpa的增删改查操作6.jpql操作7.springDataJpa8.springDataJpa执行原理:9.Spring Data JPA的查询方式10.Specification动态查询11.多表之间的关系映射和操作1.概述:JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了原创 2021-03-08 19:52:23 · 808 阅读 · 3 评论 -
entityManager.persist();容易出现的错误
1.报错信息javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.compass.hibernate.Entity.CustomerCaused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.comp原创 2021-03-04 16:53:56 · 1405 阅读 · 3 评论 -
Thymeleaf模板(全程案例详解)
Thymeleaf1.thymeleaf简介2.thymeleaf的使用3.i18n国际化4.thymeleaf变量获取1.thymeleaf简介Thymeleaf 是个什么?简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:1、Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于原创 2021-03-01 02:32:43 · 11307 阅读 · 1 评论 -
springBoot整合swagger2
swagger1.swagger是什么?有什么用?2.快速使用(jdk8+swagger2)3.swagger的详细配置1.swagger是什么?有什么用?现在大多数开发都是使用的是前后端分离,存在一个问题就是前端和后端如何更好的进行协作开发,当我们后端写好接口之后,前端就使用我们的接口拿数据就好了,但是在开发的过程中,需求如果有变化,前端不知道的话,就会导致其他不可避免的问题出现.简单的来说swagger就是一个测试我们写好接口的东西,可以配置相应的设置来达到我们的需求.测试接口的工具有一个是 Po原创 2021-02-06 18:13:00 · 216 阅读 · 0 评论 -
mybatis-plus(释放双手,告别高重复sql)
mybatis-plus1.mybatisPlus简介2.快速入门3.主键自增策略4.分页查询5.性能插件分析6.条件构造器7.自动生成代码插件1.mybatisPlus简介什么是mybatisPlus?我们先来看一下mybatisPuls官网的简介,简单的来说就是mybatis的一个插件,配合mybatis使用,达到快速开发,我们在使用mybatis的时候,很多简单的增删改查,已经分页查询,我们要写很多次,重复写,而mybatisPlus就是给我们封装了一些简单的sql,我们不需要写sql,直接调用原创 2021-02-05 21:37:46 · 3809 阅读 · 1 评论