
后端技术
文章平均质量分 50
琼歌
孤岛要成小镇,喜欢归属旅客,清风讨要往事,赫兹选择长送!
展开
-
高级基础_框架的执行顺序(入门篇半成品)
一、介绍 这周在针对旧有系统改造的同时遇到一个问题,队友把通用泛型通过ControllerAdvice和ResponseBodyAdvice的方式封装到common层。这样做本身是没有问题的,但系统由于新的考虑需要对接一些原生的平台(泛型并不适用),强行加入泛型反而弄巧成拙。搞了好久后发现同事对底层框架并不熟悉,因此觉得有必要梳理一下。二、分析1、将通用泛型封入顶层是思路并没有,但不应该强制写死,应该采用约定优于配置的方式处理,任何时候考虑系统不可能只有一个场景。除非是强制对外提供的官方...原创 2022-04-25 00:24:20 · 447 阅读 · 0 评论 -
语言基础_Mongo开发常见用法(基础篇)
一、介绍1、记录一些实际开发经常用到的用法2、公司在平台开发过程中用到的一些复杂查询场景(持续更新)二、特性1、由于mongo是半结构化的文档型内存数据库,一般性能方面会比mysql更快,但日常开发依旧是遵循mysql的基本开发规范。一方面是统一人为习惯,一方面是最大程度地去突显mongo的特性用法,而不是为了方便字段的随便扩张而使用。mongo在文档型的存储具有很大的优势,一般都会用于存储文章或者特殊的JSON内容。三、细节#简单查询Query policyQuery = n原创 2022-03-22 08:55:46 · 414 阅读 · 1 评论 -
JAVA高级基础_IDEA应用热部署开启(小白篇)
一、介绍1、让应用在代码开发之后可以不用手工重启便可以生效2、热部署生效范围在于代码层的变化,对于配置文件等的改变不生效二、步骤1、配置依赖 <!-- 开启热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools&l原创 2021-01-13 16:13:32 · 236 阅读 · 0 评论 -
IDEA创建基本的gradle项目(小白篇)
一、gradle介绍1、一个新的maven工具,与你使用什么语言开发并无关系,均是为了方便开发的项目自动化构建工具2、maven旧版本存在jar包冲突,而gradle完美地解决了这个问题3、gradler可以指定从maven等仓库中拉取jar包4、gralde取消了maven的xml配置5、支持动态的版本依赖,使用领域特定语言Groovy进行配置,大大简化了配置方式Maven的一个依赖项有6种scope,分别是compile、provided、runtime、test、system、原创 2020-12-29 12:26:48 · 3446 阅读 · 2 评论 -
高并发系列_关联查询组件_注解与反射减少冗余代码(核心篇)
一、介绍 在某些操作中我们经常需要去从A表中查询出字段信息,然后去关联查询B表。最后做组合。此类为我们常用的业务,除了在SQL层进行处理外,我们可以通过封装组件的形式进行处理,形成全局通用化功能!二、思想解析-------了解开闭原则,为扩展性开发提供了一个方向-------了解单一职责原则,明确方法应该具备单一职能的原则-------了解元注解的使用,元注解的使用...原创 2020-04-13 21:47:03 · 334 阅读 · 0 评论 -
Jackson库
jackson库的一个类,我们通过创建对象与设置序列化参数,时间参数,反序列化等设置,从而形成objectMapper对象,用于前后端对象数据的传递! 它实现了将Java对象匹配成JSON结构,并使用方法实现json的读写,如writeValueAsString和readvalue实现基本的写读!对于该类具体的方法如下:https://blog.youkuaiyun.com/u013065023/ar...转载 2018-11-18 17:31:33 · 1403 阅读 · 0 评论 -
Spring的AOP
AOP模式的理解?一、介绍首先我们知道OOP是面向对象编程,主要是实现了顶层向下发送请求,底层向上提供服务的过程! 而所谓面向对象开发是指将实现某个业务的过程分解成由多个对象的行为和属性配合而完成的过程! 那么我们可以知道这个过程肯定是分散而有序的,可以是由一个个由一个或多个对象协作完成的部分组成!那么AOP在里面充当什么角色呢? spring的AOP主要实现了为单独一个或多个部分提供...原创 2019-02-25 23:24:00 · 206 阅读 · 0 评论 -
整合支付宝额微二维码扫码
https://blog.youkuaiyun.com/fly910905/article/details/82498813支付宝和微信都是具备自己内置浏览器,也就是我们说的用户代理。正常HTTP请求会携带浏览器的信息,可以在后端根据此信息进行判断,实现一个二维码同时接入两个支付渠道!...转载 2019-03-01 13:43:47 · 2572 阅读 · 1 评论 -
数据结构之二叉树(小白篇)
一、关于二叉树https://blog.youkuaiyun.com/xiaoquantouer/article/details/65631708转载 2019-03-04 23:57:40 · 205 阅读 · 0 评论 -
Mybatis原理的深入(一)
一、Mybatis的介绍此文章根据:https://blog.youkuaiyun.com/u014297148/article/details/78696096,感谢博友的好文!二、Mybatis的原理从以上文章可以清楚地知道Mybatis原理的实现。此处是为了自己可以深入地理解下,结合自己的项目经验说下。在SpringMvc项目中,我们总会结合Mybatis进行开发。而到整合这一步开始,我...原创 2019-02-21 12:47:31 · 332 阅读 · 0 评论 -
本地事务与Spring的事务特性(小白篇)
一、事务类型事务可以分为本地事务和分布式事务两种类型。这两种事务类型是根据访问并更新的数据资源的多少来进行区分的。本地事务是在单个数据源上进行数据的访问和更新,而分布式事务是跨越多个数据源来进行数据的访问和更新。在这里要说的事务是基于数据库这种数据源的。JDBC事务在JAVA中,我们使用JDBC来连接数据库,访问和更新数据。那么在JDBC中是如何实现事务的,事务是被谁来管理的?这个答案...原创 2019-03-03 17:33:59 · 814 阅读 · 0 评论 -
关于分布式?
一、介绍因为去面试的时候,面试官要求说下分布式。之前在参与开发的时候还是非常清楚的,也不知是不是最近睡不好导致的,一时间有点忘记,这里以快速回答的方法进行整理。除了已经市场非常明确,服务业务的系统一般都是从小到大逐步演进的,一般情况下是单机单应用部署就足够了,这个时候的文件服务器,应用程序,数据库都是在同一台机器上的。随着业务量的增加,我们会加缓存适应业务。但是单机的缓存的缓存也是有一定限...原创 2019-03-06 22:57:14 · 233 阅读 · 0 评论 -
MD5加解密
当前常见的几种解密算法主要分类为:单项散列加密,对称加密和非对称加密。-------单向散列:散列又称为Hash,或者哈希算法。该加密方法是不几乎可逆的。其原理通过输入不同长度的信息进行Hash后获取固定长度的信息,作为密码。但是因为常见的密码Hash是固定类型的,因此网络上存在着一个散列字典,所以有时候也可以通过散列字典回查,因此为了增加回查难道,一般也会多维护一个盐值。盐值:一串开发者...原创 2018-07-18 10:28:13 · 709 阅读 · 0 评论 -
页面优化缓存技术+资源静态化+前后端分离?
《目录》---------->缓存的需要,缓存的原理---------->页面缓存的思路---------->热点数据缓存的思路,4个点---------->页面局部缓存(与静态缓存的信息是相似的)---------->缓存可能引起的问题以及解决思路---------->由于后端跳转页面转向ajax技术请求参数的页面静态化技术与思路,这一...原创 2018-11-17 10:44:41 · 12834 阅读 · 4 评论 -
RabbitMQ的远程调用(四)
一、RPC远程?MQ需要实现,客户端通过其发送消息,服务端处理完成后,执行回调将结果返回给客户端,那么应该如何实现呢?PRC远程调用:我们需要通过远程服务器帮我们计算某个结果然后返回给我们,我们与远程服务器形成客户端与服务端关系的这种模式成为远程调用RPC!二、RPC远程调用的原理?注意:基本的技术流程如上,本处只是基于基础简单的介绍,对于其防止出错或者异常处理流程这里不做设置~~...原创 2018-09-19 16:55:43 · 1330 阅读 · 0 评论 -
RabbitMQ的各部分理解和设置?(三)
一、引入在一、二篇中分别介绍了Erlang和MQ的安装,和RabbitMQ的基本使用(原理,基础机制),那么每一部分在明细中应该如何理解呢?本篇进一步入门?二、分模块介绍?我们知道一个MQ的流程是:生产者---->交换机------>消息队列------>消费者。 那么在这么一个流程中生产者我们可以理解为产出消息的和发送消息的,那么交换机,队列,分别起什么作用呢?...原创 2018-09-18 22:46:41 · 765 阅读 · 0 评论 -
商城
用户名+邮箱都是唯一的,相同则默认为同一个客户横向越权,纵向越权MD5加解密guava的LRU算法来刷新缓存高可用的服务对象封装:ResverResponse常量封装对象:利用枚举维护参数信息ResponseCode常量块:接口字段,枚举字段Vo视图的对象时间与字符串互转模块PageHelper.setStage和PageInfo进行分页Jackson格式化...原创 2018-08-01 21:41:40 · 438 阅读 · 0 评论 -
单例模式
单例模式要求只能保持有一个对象,保证自己只可以单一类被创建。其原理是私有化创建对象,私有化构造,静态化抛出代码!但因为考虑都生产中并不只是单独一个线程在运行,因此大部分时候简单化的没有添加锁的单例往往是不安全的,所以我们需要设置可以适应多线程的单例模式:1------非安全模式 public class Singleton { private static Si...原创 2018-07-24 10:34:08 · 164 阅读 · 0 评论 -
LRU算法--转载
1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3. 当链表...转载 2018-07-18 12:07:45 · 357 阅读 · 0 评论 -
Tomcat分布式----单机部署多应用
分布式架构演进大型网站都是通过小型网站发展而来的。1-----在项目的初始化阶段,我们构建一个项目只是需要一台服务器,里面包括了应用程序,文件服务,数据库服务!2-----随着网站业务的发展,越来越多的用户访问导致性能越来越跟不上,数据存储空间不足够,这个时候就需要进行应用和数据分离,由一台服务器变成三台,即应用服务器,文件服务器,数据库服务器!3-----网站的访问的特点通常遵循...原创 2018-11-17 10:43:52 · 1169 阅读 · 0 评论 -
Git的安装与初始化入门篇(一)
分布式项目版本管理工具,效果远超SVN,谁用谁知道?安装(windows):git的安装通常是按照正常顺序执行安装即可,没什么复杂的?基础配置:linu下载:wget命令即可linux下的最重要的安装依赖的问题?安装Git?tar -zxvf git的gz包编译?make prefix=/user/local allgit --version...原创 2018-07-10 11:18:38 · 567 阅读 · 0 评论 -
用于封装和加载全局可以用的枚举模块
利用枚举,维护全局使用的错误信息吗,还有错误信息标志,该方法与封装上送给前端的快递包是结合使用public enum ResponseCode { //基本类型参数 SUCCESS(0,"SUCCESS"), ERROR(1,"ERROR"), NEED_LOGIN(10,"NEED_LOGIN"), ILLEGAL_ARGUMENT(2,"ILLEGA...原创 2018-11-17 10:45:47 · 500 阅读 · 0 评论 -
SQL的优化和技巧
1----加载每个JDBC模块都是通过Class.forName()来加载Drvier驱动,获取连接从而进行数据库操作.通过以下方法加载驱动类:通过以下方法建立连接:创建执行SQL的语句:数据库操作模板代码:-----创建----查询:-----更新----删除SQL注入问题修改statement为PrepareStatement():数据库对应基本数据类型:事务属性:事务:将多个数据库操作归类为...原创 2018-07-14 17:35:22 · 4133 阅读 · 0 评论 -
RabbitMQ的基本使用(二)
一、MQ的工作原理?(1):RabbitMQ作为消息代理,在开发中主要负责转发消息!(2):对RabbitMQ的理解需要明白以下几个节点的意义:--------生产者:消息的制造者与发起者,消息的最初是从此处向MQ发送的,类似于制造商品的工厂--------交换机:直接与生产者沟通,生产者的每个消息都有一个路由键(字符串),交换机根据这个路由键选择 不同队列进行分发------...原创 2018-09-17 18:12:51 · 299 阅读 · 0 评论 -
如何在Windows下安装RabbitMQ(一)
一、认知 Erlang是一种通用的面向并发的编程语言,可以创建面向大规模并发的语言环境! RabbitMQ是消息对列,主要是用于做消息代理。本质上说,它接受来自生产者的信息,并将它们传递给消费者。在两者之间, 它可以根据你给它的路由,缓冲规则有选择地进行传递消息。二、流程1.windows下安装Erlang语言作为环境语言?步骤1:前往官网下载,大小大概是90M左右,具体随...原创 2018-09-17 11:50:33 · 26820 阅读 · 0 评论 -
JavaFx开发教程--基础项目结构(一)
1-------javaFx项目结构在Fx项目中,没有正常web-maven项目的权限和资源目录,只有controller与fxml文件直接的互相引用,每个项目文件之间都是平等的。个人常用的结构如下:2--------简便化开发JavaFx拥有桌面可视化手绘工具,我们为了提高效率可以使用可视化工具。在以下网址中下载安装后,在Intellij的设置中搜索javaFx然后维护;维护的路...原创 2018-08-08 11:15:35 · 10729 阅读 · 1 评论 -
关于Hibernate的使用
1-----Hibernate的原理一定程度上简化了JDBC的操作,实现了HQL防止注入的功能!提供了Dao的效率2---- Hibernate的认知图片中描述的是:我们在Dao层写代码,然后调用代码将对象和SQL传入,然后开始执行!这个时候则会出发cfg文件去建立sessionFactory,然后查询对应的hbm文件(对象属性配置)从而对数据库进行操作!sessionFact...原创 2018-07-27 16:08:55 · 143 阅读 · 0 评论 -
关于Mybaits的使用
1-----Mybaits的原理MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。简单...原创 2018-07-27 15:38:24 · 299 阅读 · 2 评论 -
LogBack--AOP的延展
在Spring项目中的另外一个核心便是AOP,那么什么是AOP呢?我们通常开发都是OOP流程化的开发,上层向下发送请求,底层向上提供服务。但是有些服务或者功能却是需要嵌套在某些服务中,或者嵌套在多个服务中, 那么这个时候就需要用到AOP切面了。在Spring最初用到的AOP中是通过: <aop:config> <aop:aspect id="time" r...原创 2018-08-01 21:42:18 · 207 阅读 · 0 评论 -
IO流
Java的IO包中最重要的就是“5-1”;意思是五个类一个接口,也即是:主要的类如下:1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。3. OutputStream(二进制格式操作):抽象类。基于字...原创 2018-07-16 13:18:36 · 142 阅读 · 0 评论