- 博客(16)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Mysql高级部分--索引、锁等详解
1、索引1.1、概念1.2、索引的优势和劣势1.3、索引的分类1.4、mysql索引结构1.4.1、B树的检索原理1、初始化介绍:一颗B+树,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示)。如:磁盘块1包含数据项17,35,包含指针P1,P2,P3,P1表示小于17的磁盘块,P2表示在17-35的磁盘块,P3表示大于35的磁盘块真实的数据存在于叶子节点即3,5,9,10,13,15,28,29,36,60,75,79,90,9
2021-03-05 14:06:05
500
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Mysql基础--详细解读
Mysql一、数据库简介1、数据库的好处1.持久化数据到本地2.可以实现结构化查询,方便管理2、数据库相关概念1、DB:数据库,保存一组有组织的数据的容器2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据3、SQL:结构化查询语言,用于和DBMS通信的语言3、数据库存储数据的特点1、将数据放到表中,表再放到库中2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。3、表具有一些特性,这些特性定义了数据在表中如何存储,类似jav
2021-03-04 20:13:24
421
1
原创 Spring AOP -- 基于配置的AOP
五、基于配置的AOP(AOP.xml)1、基于注解的AOP步骤1、将目标类和切面类都加到IOC容器中:@Component2、告诉Spring哪个类是切面类:在切面类上加@Aspect注解Spring就能认识3、在切面类中使用五个注解来告诉Spring这个切面方法在何时何地执行4、开启基于AOP注解的AOP功能:在xml中使用aop名称空间开启<!--开启基于注解的AOP功能:aop名称空间--><aop:aspectj-autoproxy></aop:aspe
2021-03-06 11:37:41
112
原创 Spring AOP -- 10大细节之细节十:多切面运行顺序
10、多切面运行顺序1、再多创建一个切面类ValidateAspect:将LogUtils切面类的通知方法复制过来package com.fxp.util;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.Signature;import org.aspectj.lang.annotation.*;import org.springframework.stereotype.Component;import java.util.
2021-03-06 11:37:27
442
1
原创 Spring AOP -- 10大细节之细节九:环绕通知的执行顺序&抛出异常让其他通知感受到
9、环绕通知的执行顺序&抛出异常让其他通知感受到9.1、环绕通知的执行顺序将普通通知和环绕通知全都打开,一起运行9.1.1、正常执行运行结果:9.1.2、异常执行运行结果:这是因为环绕通知首先捕获到异常,并在环绕通知的catch块中处理了,所以普通通知的异常通知就捕获不到了。9.1.3、结论环绕通知是优先于普通通知执行的:环绕前置、普通前置、目标方法执行、环绕正常返回/出现异常、环绕后置、普通后置、普通返回/出现异常9.2、抛出异常让其他通知知道当程序出现了异常,而环
2021-03-06 11:37:14
3044
2
原创 Spring AOP -- 10大细节之细节七:抽取可重用的切入点表达式
7、抽取可重用的切入点表达式如果我们想把切入点表达式的切入位置改成只有add方法,那就要把所有的切入点位置都改掉,这样很麻烦,那有没有简便一点的方法呢?我们可以把可重用的切入点表达式抽取出来1、随便声明一个没有实现的void的空方法2、在这个方法上添加一个注解:@Pointcut3、将切入点表达式写在这个注解里面4、其他注解想要用这个切入点表达式,只要把这个方法名带上()写在原来写切入点表达式的地方即可。其他方法调用:...
2021-03-06 11:36:56
259
原创 Spring AOP -- 10大细节之细节八:环绕通知
8、环绕通知1、环绕通知是Spring中最强大的通知,环绕通知其实就是一个动态代理2、手写版的动态代理:* try{* @Before //前置通知* method.invoke(obj,args);* @AfterReturning //返回通知* }* catch(Exception e){* @AfterThrowing //异常通知** }* finally{* @After //后置通知*环绕通知中有一个参数:ProceedingJoinPo
2021-03-06 11:36:27
825
原创 Spring AOP -- 10大细节之细节六:Spring对通知方法的约束
6、spring对通知方法的约束6.1、Spring对通知方法不严格例如:可以随意修改通知方法的访问权限符或者静态非静态属性,或者修改其返回值类型,也可以在方法体里面随意return任意值,这些都不会对结果有任何影响运行结果:6.2、spring对通知方法的唯一要求通知方法里面的参数一定不能乱写通知方法是spring利用反射调用的,每次方法调用得确定这个方法的参数表的值,参数表上的每一个参数,spring都得知道是什么JoinPoint这个参数,spring是认识的,但是如果再写上一个别的
2021-03-05 18:20:28
135
原创 Spring AOP -- 10大细节之细节五:异常信息和返回结果的获取
5、异常信息和返回结果的获取其实很简单:返回结果和异常信息,都是由returning和throwing来指定的,在注解的参数里面,如果是返回值,就写上returning这个参数,并把作为返回值的参数名写上,在前置方法的参数列表里面加上这个返回值参数;如果是异常,就写上throwing这个参数,并把作为异常的参数名写上,在异常通知方法的参数列表里面加上这个参数即可。但是要注意:在注解里面,如果只有一个参数,value可以省略不写,但是如果有多个参数,是要把value这个参数写上的。5.1、正常情况@
2021-03-05 18:17:24
844
原创 Spring AOP -- 10大细节之细节四:Joinpoint获取目标方法的信息
4、Joinpoint获取目标方法的信息4.1、在通知方法运行的时候,拿到目标方法的详细信息/** * 细节四: * 在通知方法运行的时候,拿到目标方法的详细信息 * 1、只需要为通知方法的参数上写一个参数 * JoinPoint joinPoint:封装了当前目标方法的详细信息 * */public static void logStart(JoinPoint joinPoint){ //拿到目标方法的参数 Object[] args = joinPoint.getA
2021-03-05 18:15:07
1534
原创 Spring AOP -- 10大细节之细节三:通知方法的执行顺序
3、通知方法的执行顺序3.1、方法正常执行1、以除法为例:@Testpublic void test4(){ ApplicationContext ioc = new ClassPathXmlApplicationContext("aop1.xml"); Calculator bean = ioc.getBean(Calculator.class); bean.div(1,2);}}运行结果:顺序为:@Before(前置通知)、@After(后置通知)、@Afte
2021-03-05 18:13:35
290
原创 Spring AOP --10大细节之细节二:切入点表达式的写法
2、切入点表达式写法切入点表达式写法:("execution(访问权限符 返回值类型 方法签名(方法的参数类型))")2.1、通配符2.1.1、*号通配符1、匹配一个或者多个字符例如:@Before("execution(public int com.fxp.impl.MyCalcu*.*(int,int ))")意思是:以MyCalcu开头的,后面任意字符2、匹配任意一个参数、例如:@Before("execution(public int com.fxp.impl.MyCalcu
2021-03-05 18:11:52
522
原创 Spring AOP -- 10大细节之细节一:ioc容器中保存的是组件的代理对象
1、IOC容器中保存的是组件的代理对象1.1、看看bean的真正类型//看一下bean的类型是什么System.out.println(bean);//看看bean的真正类型System.out.println(bean.getClass());运行结果:虽然看上去bean的类型是MyCalculaotr,但是实际上bean的真正类型是$Proxy13。$Proxy13,这个类型肯定不是本类类型。1.2、根据id拿组件1.2.1、目标对象的类型,是其接口类型//也可以根据id拿,i
2021-03-05 18:08:46
567
原创 Spring AOP -- 重点
二、AOP重点这部分看不懂,可以先看下面的细节部分。1、AOP简单配置1.1、AOP使用步骤1.1.1、导包(创建一个lib文件,用于存放jar包)spring-aop-4.0.0.RELEASE.jarspring-beans-4.0.0.RELEASE.jarspring-context-4.0.0.RELEASE.jarspring-core-4.0.0.RELEASE.jarspring-expression-4.0.0.RELEASE.jarcommons-logging-1.
2021-03-05 18:00:28
141
原创 Spring AOP -- 简介
一、AOP简介1、AOP概念AOP(Aspect Oreriented Programming)面向切面编程OOP(Object Oreriented Programming)面向对象编程面向切面编程:基于OOP新的编程思想,指在程序运行期间,将某段代码动态切入到指定方法的指定位置进行运行的编程方式2、场景计算器在计算的时候进行日志记录2.1、创建一个AOP工程2.2、实验2.2.1、创建一个Calculator接口创建加减乘除四个运算方法package com.fxp;publ
2021-03-05 17:50:06
220
2
原创 Spring IOC 控制反转--源码级详细解读
SpringIOC1、IOC(Invervion Of Control):控制反转1.1控制:资源的获取方式1、主动式:(每次需要资源的时候就自己new一个对象,然后用对象去调用)Person{Animal cat = new Animal();//简单对象可以这样去创建Car car = new Car();//这样new出来的car是没有任何功能的,car是一个比较复杂的对象,由很多零件构成,对于这样的对象,再用new对象的方法,就不合适了}**2、被动式:**资源的获取不是我们自己创建
2021-03-05 16:14:35
440
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人