自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (3)
  • 收藏
  • 关注

原创 SpringBoot—Actuator 详解

Spring Boot 提供了所谓的 endpoints (端点)给外部来与应用程序进行访问和交互。打比方来说,/health 端点 提供了关于应用健康情况的一些基础信息。metrics 端点提供了一些有用的应用程序指标(JVM 内存使用、系统CPU使用等)。这些 Actuator 模块本来就有的端点我们称之为原生端点。应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。度量指标类。

2024-04-07 01:04:59 1056

原创 QAuth 2.0

在传统的client-server认证模型中,客户端通过提供资源所有者的凭证来请求服务器访问一个受限制的资源(受保护的资源)。为了让第三方应用可以访问这些受限制的资源,资源所有者共享他的凭证给第三方应用。

2024-04-07 00:59:07 513

原创 Java线程池

任务队列:存放待处理的任务,新的任务将不断被加入队列中,执行完的任务将被从队列中移除Java中线程池是通过Executor框架实现,其中ThreadPooExecutor是构建线程的核心方法。

2024-03-23 01:10:43 277

原创 SpringData JPA执行删除为什么只执行查询没执行删除

如果删除的主键为0时,JPA是不能跳出delete。更新操作也是,如果主键为0时,先执行查询并为对数据更新,而会报错重复主键异常

2024-03-03 14:08:58 107

原创 粘包和半包问题及解决办法

步骤1 编写一个消息封装类 2编写客户端 3编写服务器/*** @Description: 消息封装类*//*** 将协议封装为:协议头 + 协议体* @return*///协议体 byte数据// 最终封装对象// 借助 NumberFormat 将 int 转换为 byte[]//协议头 byte数组// 封装协议头// 封装协议体/*** 获取消息头的内容(也就是消息体的长度)* @return*///得到消息体的字节长度。

2023-10-18 15:01:42 750

原创 代理模式(Java实现)

1.静态代理中,代理类和真实类实现的是同一个接口,重写同样的方法;jdk动态代理中,代理类和真实类关系不大,代理类实现无侵入式的代码扩展。2.静态代理中当接口中方法增加的时候,在代理类代码量也会增加,显然是不妥的;jdk动态代理解决了这个问题,当业务增加,代理类的代码不会增加。3.jdk动态代理实现的是jdk自带InvocationHandler接口,实现了这个接口的类也叫拦截器类,也叫代理类。

2023-08-14 10:20:58 1014

原创 HashMap 的 7 种遍历方式与性能分析

本文我们讲了 HashMap 4 大类(迭代器、for、lambda、stream)遍历方式,以及具体的 7 种遍历方法,

2023-05-11 10:34:06 709

原创 spring的DI(依赖注入)

依赖注入(Dependency Injection):在Spring创建这个对象的过程中,将这个对象所依赖的属性注入进去。(依赖关系的管理以后都交给spring来维护,在当前类需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明。依赖关系的维护,就称之为依赖注入)依赖注入的能注入的数据:基本类型和String 其他bean类型(在配置文件中或者注解配置过的bean)...

2023-05-11 10:26:13 79

原创 在某文件中或某目录下文件里找到指定字符串,并将包含该字符串的所有行和行号打印出来

在某文件中或某目录下文件里找到指定字符串,并将包含该字符串的所有行和行号打印出来

2022-06-17 21:42:04 932

原创 PSQL报错误: 重复键违反唯一约束“citizen_experience_range_pkey“

Postgres处理自动递增的方式与MySQL稍有不同。在Postgres中,创建serial字段时,还创建了一个sequence字段,用于跟踪要使用的id。这个序列字段将以值1开始。在表中插入新记录时,如果不指定id字段,它将使用序列的值,然后递增序列。但是,如果确实指定了id字段,则不会使用序列,也不会更新序列。我假设,当你转到Postgres时,你已经播种或导入了一些现有的用户,以及他们现有的id。当您用这些用户的id创建这些用户记录时,序列没有被使用,因此它从未被更新。因此,例如,如果导入了1

2021-03-29 20:29:57 1866 1

原创 Swagger2中@ApilmplicitParam中dataType和paramType

@ApilmplicitParam(name = "id", value = "用户id", require = true, dataType = "Integer", paramType = "query")dataType: 代表请求参数类型paramType: 代表参数应该放在请求的哪个地方paramType的取值范围:header :放在请求头,请求参数的获取@RequestHeader,such as X-MyHeader: Valuequery :用于请求的参数拼接,请求参数的获取@

2020-08-23 18:12:44 1432

原创 MyBatis的注解开发

CRUD操作:@Insert,@Update,@Delete,@Select@Result:实现结果集封装@Results:可以与@Result一起使用,封装结果集@ResultMap:实现引用@Results定义的封装@One:实现一对一结果集封装 @Many:实现一对多结果集封装@SelectProvider:实现动态SQL映射@CacheNamespace:实现注解二级缓存的...

2020-04-20 22:37:38 171

原创 MyBatis的缓存

为什么要使用缓存?减少和数据的交互次数,提高执行效率适用于缓存的场景:经常查询并且不经常改变的;数据的正确与否对最终结果影响不大的不适应于缓存的场景:经常改变的数据;数据的正确与否对最终结果影响很大的。如:商品的库存,股市的牌价MyBatis缓存MyBatis的缓存分为一级缓存和二级缓存一级缓存(默认的是支持一级缓存):指的是MyBatis中SqlSession对象的缓存,当我们执...

2020-04-20 21:14:09 177 1

原创 MyBatis的延迟加载

延迟加载:在需要用到数据时才进行加载,不需要用到数据时就不加载数据,延迟加载也称为懒加载。立即加载:不管用不用,只要一调用方法,马上发送查询。在对应的四种表关系中,一对多,多对一,一对一,多对多。一对多,多对多:通常情况下采用延迟加载多对一,一对一:通常情况下采用立即加载延迟加载:好处:先从单表查询,需要时再从关联表进行关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要...

2020-04-20 20:37:44 132

原创 MyBatis多表查询

表之间的关系:一对多,多对一,多对多,一对一一对一:private class Account{ private Integer id; private Integer uid; private double money; private User user; /**setter方法**/ ........ /**getter方法**/}public interface A...

2020-04-20 13:41:15 153

原创 MyBatis的动态SQL

<!--<if>标签:它的test属性中写的是对象的属性名,如果是包装类的对象,要使用OGNL表达式的写法,同时要注意where 1=1的作用--><select id="findByUser" resultType="user" parameterType="user"> select * from user where 1=1 <if test...

2020-04-19 10:13:55 137

原创 MyBatis配置和使用

基于代理Dao实现CRUD操作使用要求:持久层接口和持久层接口的映射配置必须在相同包下持久层映射配置中mapper标签的namespace属性取值必须是持久层接口的全限定类名SQL语句的配置标签、、、的id属性必须和持久层接口的方法名相同interface UserDao{ User findById(Integer userId);}/**UserDao.xml res...

2020-04-18 15:07:48 218

原创 事务的四大特性,脏读、不可重复读、幻读和处理脏读,不重复读、幻读的方法

事务:在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务的四大特性(ACID)原子性(Atomicity):事务是一个完整的操作,事务的各步操作时不可分的(原子的);要么都执行,要么都不执行。 一致性(Consistency):当事务完成时,数据必须处于一致状态。 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它...

2020-04-08 23:40:18 371

原创 SQL中左连接和右连接,内连接和全外连接的区别

left join(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。right join(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。inner join(等值连接或内连接):只返回二个表中连接字段相等的行。full join(全外连接):返回左右表中所有记录和左右表中连接字段相等的记录。A表:id name 1 小王 2 ...

2020-03-22 11:04:21 329

原创 Spring Bean管理

在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。Bean是由Spring IoC容器实例化,组装和以其他方式管理的对象。创建Bean的三种方式:使用默认构造函数创建。(类中没有默认构造函数,则对象无法创建) 使用普通工厂中的方法创建对象。(使用某个类中的方法创建对象,并存入spring容器) 使用工厂中的静态方法创建对象。(使用某...

2020-03-17 00:12:52 181

原创 父子类执行代码顺序

父子类执行顺序:父类静态代码块-->子类静态代码块-->父类代码块-->父类构造方法-->子类代码块-->子类构造方法//父类public class Test1 { public Test1(){ System.out.println("父类构造方法"); } static{ System.out....

2020-03-14 18:40:17 798

原创 耦合和内聚

耦合指的是模块之间的相对独立性(互相连接的紧密程度)的度量,耦合取决于各个模块之间的复杂程度、调用模块的方式以及通过接口的信息类型。在软件工程中,耦合指的就是对象之间的依赖性。耦合有如下分类:内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。 公共耦合:两个或两个以上的模块共同引用一个全局数据项,这种...

2020-03-12 21:04:44 617

原创 MyBatis主配置文件-MyBatis-Config.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">propert...

2020-03-10 07:52:11 159

原创 UML(统一建模语言)

UML:统一建模语言或标准建模语言一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,可用于多类型软件系统开发建模的各个阶段。类的层次结构:代表类与类之间的关系泛化 依赖 关联 聚合 组合其中泛化是纵向关系,其他关系都是横向关系,在横向关系中的强弱关系为依赖 < 关联 < 聚合 < 组合泛化关系(is a):就是继承,表...

2020-02-18 15:35:47 201

原创 Java基础回顾三

内部类:更好的实现了信息隐藏;在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类,这样的类称为内部类;与之对应,包含内部类的类被称为外部类。内部类:成员内部类 静态内部类 方法内部类 匿名内部类成员内部类:也称为普通内部类class Outter{ private Inner inner = null; pub...

2020-02-17 00:09:49 131

原创 Java基础回顾二

抽象类和抽象方法——abstract抽象类不可以实例化,可以通过向上转型,指向子类实例。应用场景:某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。抽象方法:不允许包含方法体;子类中需要重写父类的抽象方法;不重写父类的抽象方法,则子类也是抽象类。使用规则:abstract定义抽象类。 private,static,final不能与abstrac...

2020-02-10 21:01:56 115

原创 多态

多态:意味着允许不同类的对象对同一消息做出不同的响应多态可以分为:编译时多态:设计时多态,方法重载 运行时多态:程序运行动态决定调用哪个方法多态必要条件:1.满足继承关系 2.父类引用指向子类对象向上转型:又叫自动转型,隐式转型。是父类引用指向子类实例,也就是子类的对象可以赋值给父类的对象.Animal animal = new Dog(); //Dog类是Animal类的子...

2020-02-09 15:44:23 136

原创 单例模式

在Java中单例模式是指一个类有且仅有一个实例,并且自行实例化向整个系统提供。其目的是使类的一个对象成为该系统中的唯一实例。在Java,一般常用在工具类的实现或创建对象需要消耗资源。要点:某个类只能有一个实例 必须自行创建实例 必须自行向整个系统提供这个实例实现:只提供私有的构造方法 含有一个该类的静态私有对象 提供一个静态的公有方法用于创建,获取静态私有对象代码实现方案:...

2020-02-07 19:27:41 188

原创 Java基础回顾一

单一职责原则:单一功能原则(一个类应该有且只有一个引起变化的原因)对象实例化:Cat cat = new Cat();//把堆空间的地址存放在栈cat中实例化对象的过程可以分为二个部分:声明对象Cat cat:是在内存的栈空间里开辟了一个区域叫cat空间; 实例化对象new Cat():在内存的堆空间开辟一个空间,完成对象实例化操作对象间的引用传递,实际上传递的是堆内存空间...

2020-02-07 00:33:11 117

原创 SpringMVC入门

SpringMVC是目前最好实现MVC设计模式的框架;Spring框架的一个后续产品;Spring框架的一个子模块,二者可以很好的结合使用,不需要整合。MVC设计模式:Controller:负责接受并处理请求,响应客户端 Model:模型数据,业务逻辑 View:呈现模型,与用户进行交互SpringMVC核心组件:DispatcherServlet:前置控制器。是整个流程控制中心...

2019-05-01 19:14:59 147

原创 Java反射

Java反射机制:是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制。Java的反射机制的作用:是用来编写一些通用较高的代码或者框架的时候来使用。反射的API:Class类 Constructor类 Field类 Method类Class类:J...

2019-04-28 19:18:42 166

转载 设计模式笔记(三)——面向对象设计原则

面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则。 如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。单一职责原则:一个类只负责一个功能领域中的相应职责(对于一个类而说,只有一个引起它变化的原因)实现高内聚,低耦合的指导方针。开闭原则:一个软件实体应当对扩展开放,对修改关闭(...

2019-04-24 20:36:08 261

转载 设计模式笔记(二)——UML类图

UML(Unified Modeling Language,统一建模语言)UML结构视图(View):UML视图用于从不同的角度来表示建模系统(用户视图为所有视图的核心,行为视图,实现视图和环境视图) 图(Diagram):描述UML视图内容的图形 模型元素(Model Element):UML图中所使用的一些概念 通用机制(General Mechanism):为模型元素提供额外的...

2019-04-24 20:13:51 171

转载 设计模式笔记(一)——设计模式概述

软件模式基本结构:问题描述(待解决问题是什么),前提条件(在何种环境或约束条件下使用),解法(如何解决)和效果(有哪些优缺点)设计模式分类:1.创建型模式:主要用于描述如何创建对象2.结构型模式:主要用于描述如何实现类或对象的组合3.行为型模式:主要用于描述类或对象怎样交互以及怎样分配职责根据模式是主要处理类之间的关系还是主要处理对象之间的关系:将模式分为1.类...

2019-04-24 19:59:40 163

原创 java读取输入字符串的操作

读取输入字符串的方法:通过Scanner类读取字符串的方法next()和nextLine()import java.util.*;public class Main{ public static void main(String []args){ Scanner scanner = new Scanner(System.in); String a =scanner.next();/...

2019-03-29 20:37:18 28448 4

原创 交换a,b值,不使用第三个变量

今天做笔试遇到一个问题//加减法int a=3;int b=5;a=a+b;b=a-b;//b=3a=a-b;//a=5//异或法:可以完成对整型变量的交换,对于浮点型变量它无法完成交换int a=3;int b=5;a=a^b;b=a^b;a=a^b;//乘除法:可以处理整型和浮点型变量,但在处理浮点型变量时也存在精度损失问题,b必不为0。int a=3;int...

2019-03-27 17:29:17 3658

原创 Spring 事务管理(一)事务原则和事务类型

事务是正确执行一系列操作或动作,使得数据库从一种状态转换成另一种状态,且保证操作全部成功或者全部失败。事务原则:事务必须服从ISO/IEC所制定的ACID原则ACID原则的具体内涵如下:原子性(Atomicity):即不可分割性,事务要么全部被执行,要么全部不被执行一致性(Consistency):事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性(Isolation):在事务...

2019-03-20 23:21:32 406

原创 Spring AOP(四)基于AspectJ的AOP开发

实现基于AspectJ的AOP开发方式:注解方式XML方式AspectJ是一个基于Java语言的AOP框架;Spring2.0以后新增了对AspectJ切点表达式支持@AspectJ是AspectJ1.5新增功能,通过JDK1.5注解技术,可以直接在Bean类中定义切面@AspectJ提供不同的通知类型@Before 前置通知,相当于BeforeAdvice@AfterRetu...

2019-03-18 18:02:47 161

原创 Spring AOP(三) AOP通知和切面类型

Spring AOP增强类型:Spring 按照通知Advice在目标类方法的连接点位置,可以分为5类:前置通知(org.springframework.aop.MethodBeforeAdvice):在目标方法执行前实施增强后置通知(org.springframework.aop.MethodAfterAdvice):在目标方法执行后实施增强环绕通知(org.applliance.in...

2019-03-16 22:59:49 1213

原创 Spring AOP(二) AOP的底层实现和代码演示

AOP的底层实现:通过二种动态代理实现的,一种是jdk动态代理,另一种是cglib的动态代理//先save方法添加权限验证//JDK动态代理public interface UserDao{ public void save(){ }}public class UserDaoImpl implements UserDao{}...

2019-03-14 23:05:03 159

数理统计复习笔记.pdf

研究生数理统计课程的复习笔记

2021-01-22

人员管理系统

通过Spring和MyBatis来实现部门人员管理系统,包含了部门管理,人员管理和日志记录功能

2019-03-28

学生成绩管理系统

语言是Java,是用Eclipse开发,是用SSM框架,功能主要有管理员模块,教师模块,学生模块。

2019-01-14

空空如也

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

TA关注的人

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