春招复习1:Java基础
Java基础加强重点学习内容
面向对象
字符串
接口
容器
异常
泛型
反射
注解
I/O
一、面向对象特性1. 面向对象 面向对象是一种编程思想,是使用类或对象作为组织代码的基本单元,具有继承、封装、多态三大特性。
封装就是控制类的访问权限,只开放出对外的方法,并抽象出接口类,供使用者 ...
Mybatis中Mapper的实现原理
一、Mapper案例相信只要是使用过MyBatis开发的同学,都有使用其中的Mapper接口来开发,因为确实是很方便,方便到我们只需要编写接口而不需要写实现类,就能够完成对数据库的CRUD操作。
但是不知道大家有没有去思考过,如果我们真的只有Mapper接口的话,程序又是如何去完成实际的业务的呢? ...
Spring Framework源码解析
Spring Framework源码地址:https://github.com/spring-projects/spring-framework
从目录结构可以看出整个Spring框架都遵从模块化设计的思路,总共分为20多个模块,如下图所示:
1.Spring的组成部分从上图可以看出:
Sprin ...
SpringBoot自动配置和自定义starter
1. SpringBoot做了什么?可以看到我们利用SpringBoot搭建好工程,开始专注业务开发,省去了所有的配置、依赖管理,非常简单!
那么这些省去的配置、依赖SpringBoot是什么时候帮我们完成的呢?
1.1 依赖管理首先来看SpringBoot如何帮我们管理依赖及其版本信息。
打开项目 ...
SpringMVC的源码分析
1. SpringMVC的执行过程分析首先,我们先来看一下springmvc 官方文档中提供的执行过程图。通过此图,我们可以看到其实都是由==前端控制器==负责找到要执行的控制器方法。这个前端控制器就是SpringMVC 的核心控制器==DispatcherServlet==。
接下来,我们通过一个 ...
Git
一、git简介Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库(本地仓库),这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们 ...
redis实现分布式锁
一、业务场景介绍在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题,例如抢购。
private static final int TIMEOUT= 10*1000;@Transactionalpublic void orderProductMockD ...
Spring Data Jpa(3):动态查询和多表操作
一、Specifications动态查询有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。相比JPQL,其优势是类型安全,更加的面向对象。
import java. ...
SpringDataJpa(2):SpringDataJpa的使用和源码分析
一、Spring Data JPA的概述1.1 Spring Data JPASpring Data JPA 是 Spring 基于 ORM思想、JPA 规范的基础上封装的一套,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 S ...
Spring Data Jpa(1):Jpa
一、ORM概述[了解]ORM(Object-Relational Mapping) 表示对象关系映射。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射
简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当 ...