随笔分类 - 后端技术
摘要:WSGI的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。 WSGI协议分为两部分,分别为WSGI
阅读全文
摘要:场景 正在使用unittest做测试,然后unittest discover死活找不到测试文件,一开始我就猜到可能是因为有一个目录不是包,没有__init__.py文件,但反复看了vscode侧边栏的目录结构,发现是有__init__.py的,然后就折腾了一下午。 斩首示众 我承认我应该及时使用命令
阅读全文
摘要:第一章 代理模式 了解AOP之前,首先了解代理模式。 代理模式指的是:通过代理类为原始类添加额外功能。 代理模式的好处:利于原始类的维护。 对于通用的额外功能,比如日志、事务等,如果硬编码在Service中,那么当额外功能发生了改变,所有Service都要修改,不利于维护。 代理的本质是构造一个代理
阅读全文
摘要:什么是mybatisplus? MybatisPlus是一款优秀的国产持久层框架,基于Mybatis实现了基础SQL和CRUD操作的封装,帮助开发者简化数据库操作。MybatisPlus基于Mybatis实现了功能的扩展和增强,同时兼容现有的Mybatis操作。 基础准备 案例基于SpringBoo
阅读全文
摘要:什么是工厂设计模式 解耦的本质在于隔离变化 耦合与解耦合本质在于对 变化 的处理。 通常如果将接口的实现类硬编码在程序中,就会使得 变化 散落在程序各处,使得修改会产生连锁反应。 但代码不能完全解耦,如果代码间完全没有关联那程序也就无法正常运行。 所以,解耦的本质在于:隔离变化。 分析这段代码: 首
阅读全文
摘要:概述 Mybatis前身是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code并且改命为MyBatis,2013年11月迁移到Github。 MyBatis是一个实现了数据持久化的开源框架,简单理解就是对JDB
阅读全文
摘要:当需要关闭资源时,通常会使用try finally语句 java7新增了tryWithResource语句专门用于处理资源关闭的情况,基本结构为:try(){} 括号内用于初始化资源,资源需要实现java.lang.AutoCloseable接口,即实现close()方法。 括号内可以初始化多个资源
阅读全文
摘要:如果要入门大数据,kafka算是一个很好的入口。kafka作为数据管道和存储设施在大数据系统中无所不在,本文基于官方文档对kafka进行一次学习和梳理。 介绍 消息系统 Kafka是一个消息系统,它是分布式的,大吞吐量的消息系统。 整合了点对点和发布订阅两种模式 传统的消息系统如ActiveMQ通常
阅读全文
摘要:本文介绍使用 对Controller抛出的异常进行统一拦截和处理。 定义返回格式 首先定义一个统一的返回格式,所有的异常最终都按照统一格式返回给前端。 定义状态码 不同的异常对应不同的返回状态码 首先将状态码集中在配置文件中进行管理 properties的编码格式需要配置,否则可能出现中文乱码 ID
阅读全文
摘要:在Java体系中,Bean Validation 2.0(JSR380)是当前的数据校验规范,Hibernate Validator是JSR380的参考实现,也是事实标准。SpringBoot整合了Hibernator Validator作为数据校验的实现。 引入依赖 已经包含了hibernate
阅读全文
摘要:介绍 Java的数据类型分为“基本数据类型”和“引用数据类型”两大类。 Java中存在8种基本数据类型,基本数据类型不具备对象特征,无法对象化交互。 每种基本数据类型都有对应的包装类,包装类和其他的Class相同,都继承自Object类型。 如何选择使用什么类型 在两种情况下选择使用包装类: 1.
阅读全文
摘要:介绍 Druid是阿里出品的Java 数据库连接池,在性能,稳定性,扩展性和监控方面做得比较好,是国内流行的数据库连接池。 SpringBoot整合 pom.xml application.yml 实体类 开启控制台 Druid默认不开启监控页面,在SpringBoot中可以使用ServletReg
阅读全文
摘要:介绍 H2是Java编写的一款内嵌式数据库,支持内存和文件两种方式存储数据。 SpringBoot整合 pom.xml application.yml 访问控制台 http://localhost:8080/h2 console 命令行执行 执行后将自动打开浏览器到控制台页面
阅读全文
摘要:介绍 Jasypt是Java流行的加密库,使用Jasypt spring boot starter可以和springboot整合 独立使用 配置依赖 基本使用 整合SpringBoot 配置依赖 基本使用 application.properties Controller.java
阅读全文
摘要:介绍 Jackson是流行的Java Json解析器 基本使用 Json和对象之间转换 Json和JsonNode对象之间转换 自定义Json转换对象 常用配置 忽略无法对应的属性 设置日期格式 开启Wrapping 正常是{"id": xx, "name": xx},开启Wrapping后在外面嵌
阅读全文
摘要:介绍 Stream是JDK8引入的一个类型,类似Iterator迭代器,帮助开发者以流的方式处理数据。 Stream的操作分为“转换操作”和“聚合操作”,转换操作返回一个新的Stream,实现链式操作,聚合操作返回最终值并销毁Stream。 Stream通过”转换操作“构建了一个管道,每一个元素处理
阅读全文
摘要:介绍 Lombok帮助开发者自动生成getter,setter,toString等样板代码 配置依赖 IDEA插件 安装插件让IDEA可以识别Lombok注解,防止检查报错。 常用注解 IDEA插件下面列出了几乎全部的注解 @Getter @Setter 创建getter和setter方法。 @To
阅读全文
摘要:介绍 Slf4j使用代理模式实现对多种日志框架的封装,类似JDBC,提供统一接口实现日志记录。 logback是一款高性能的日志框架,slf4j+logback是一个常用组合。 配置依赖 基础使用
阅读全文
摘要:介绍 枚举是一种特殊的类: 1. 它在类中定义了有限的对象 2. 使用enum关键词代替class 3. 无法实例化,只允许使用定义的对象 4. 枚举的对象是单例, 5. 枚举在类加载时实例化(同静态代码块) 枚举是实现单例模式的最好方式 枚举类最好以Enum结尾 无参构造 带参构造
阅读全文
摘要:介绍 由于JDBC存在大量样板代码,SpringJDBCTemplate对JDBC进行了封装,提供更简洁的方法供开发者使用。 常用方法 查询类 查询简单数据 简单数据即查询结果中只有一个“字段名” 查询复杂数据 复杂数据即查询结果中存在多个“字段名” Map封装 使用Map封装”字段名“和”字段值“
阅读全文

浙公网安备 33010602011771号