缓存原理和设计


缓存原理和设计

缓存的基本思想

什么是缓存

缓存原来是指CPU上的一种告诉存储器,它先于内存与CPU 交换数据,速度很快,现在指存在计算机上的原始数据的复制集,便于快速访问。 这是以空间换时间的方法

缓存的使用场景

DB缓存,减轻DB服务器压力

一般情况下数据存在数据库中,应用程序直接操作数据库,当访问量上万,数据库压力增大,可以采取的方法是: 读写分离,分库分表,当访问量达到10万,百万,需要引入缓存,将已经访问过的内容或数据存储起来,当再次访问时,先访问缓存,缓存命中返回数据,不命中再找数据库,并回填到缓存。

提高系统响应

数据库的数据是存在文件中,在大量瞬时访问呢时,MySQL单机会因为

Read more

SpringBoot


SpringBoot 基本应用

约定优于配置

Spring Boot 是所有基于Spring 开发的项目的起点,Spring Boot 的设计是为了 尽可能的跑起来Spring 应用程序,并且尽可能减少配置 又称约定编程,是一种软件设计范式 本质上说,系统,类库或框架应该假定合理的默认值,而非要求提供不必要的配置,例如模型中有一个名为User类,那么数据库中对应的表默认为User

SpringBoot

spring 优缺点

优点

spring 是java 的轻量级代替品,无需开发重量级,Spring为企业级 JAVA开发了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的

Read more

SpringMVC


MVC 模式

MVC 是软件工程一种软件架构模式,分离业务逻辑与显示界面的开发思想 1. M(model) 处理业务逻辑,封装实体 2.V(view) 视图,展示内容 3.C(controller)控制器,负责调度分发(1.接受请求,2.调用模型,3,转发视图)

SpringMVC

是封装了原来Servlet 中的共有行为,例如:参数封装,视图转发等,一种实现MVC设计模式的轻量级Web框架,通过注解,让简单 的java类成为处理请求的控制器无需实现任何接口,支持restful 编程风格的请求

/和/*的区别

/ 只能获取到类似/login ,/* 带后缀的都能获取

spring mvc 执行

Read more

spring JDBC template


Spring 的Jdbc Template

JdbcTemplate

jdbctemplate 是spring 框架中提供的一个模板对象,是对原始繁琐的jdbc API 对象的简单封装

核心对象

jdbcTemplate jdbcTemplate  = new JdbcTemplate(DataSource dataSource)

核心方法

int update():执行增删改语句
List<T> query() 查询多个
T queryForObject() 查询一个
new BeanPropertyRowMapper<>(): 实现ORM 映射封装

Spr

Read more

AOP


常用的动态代理结束

  1. jdk 代理,基于接口的动态代理技术,利用拦截器(必须实现invocationHandler)加上反射机制生成一个代理接口的匿名类,在调用具体方法前调用invokeHandler来处理,从而实现方法的加强。
  2. cglib 代理,基于父类动态代理技术,动态生成一个要代理的子类,子类要重写代理类的所有不是final的方法,在子类中采用方法拦截技术拦截所有的父类方法的调用,顺势加入横切逻辑,对方法进行加强。

JDK动态代理方式

jdk 工厂类

类加载器,被代理类所需要实现的接口,当代理对象调用接口中的任意方法,都会执行invocationHander 中的invoke方法
Pr

Read more