19/6/5 日志工具,动态代理 ,注解,枚举,工厂

版权声明: https://blog.csdn.net/qq_39263750/article/details/90898863

日志:
其实就是一个工具类:
在这里插入图片描述
日志框架说起高大上,实则就是导入一个jar包。
在这里插入图片描述

日志包Log4J的使用:

在这里插入图片描述
在这里插入图片描述

导入jar包:log4j
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

TRACE 指定日志级别:规定不同的信息在输出的时候级别不一样。

常用日志级别:ALL (任何信息都可以输出)TRACE(堆、栈信息(之前用过的e.printtrace))、BUG、INFO、WARN、ERROR、FATAL(更严重的信息 ) 越往下走越来越细

debug之前的信息都会输出
off 任何都不会输出。
比他级别低的都不回输出,只会输出比自己级别高的。


console: 规定在控制台输出的格式。
f1在这里代表在文件(file)里面输出
在测试阶段基本用不到文件输出,都是i在控制台查看的

最上面的 console f1 这些都是用户自定义的

参数比较重要。一般参数都会给你参考规范提供参考。
在这里插入图片描述

测试:

日志技术,配合日志配置日志方法
在这里插入图片描述
给个字节码对象,一般都是当前类

自己把不同信息定义成不同级别

在这里插入图片描述
在这里插入图片描述

这时候要是不想要输出了,配置文件里面改成off即可
在这里插入图片描述
这就会比syso方便很多,无需自己去注释。


在d盘建立日志文件 ,打印出来
在这里插入图片描述
d盘里还会有这个控制台的信息


以后自己的程序就可以通过添加日志输出,来取代syso输出。
后面的学习的框架的源码中有很多日志输出信息。我们添加jar包和配置文件就可以看到框架中输出的信息了。

在Servlet里面加日志jar包和配置文件 控制台没有输出的时候,说明Servlet里面没有
在这里插入图片描述
这些代码。


动态代理

MyBatis和Spring 框架的底层都有。
框架的底层:反射(核心),动态代理。

增强一个类的功能的方法:
之前用过:继承、重写:被增强的对象不能变,被增强的功能可以变。
==装饰者模式:==被增强的对象可以变,但是被增强的功能不能变。
动态代理: 被增强的对象可以变,被增强的功能可以变。

动态代理的实现:

Proxy:JDK 自带的动态代理:
cglib:
Java字节码增强:

实现:
在这里插入图片描述
得到目标对象的接口,接口里面的方法就是要被增强的方法
Proxy增强要求目标对象必须要有接口。
在这里插入图片描述

使用动态代理来创建代理对象
在这里插入图片描述

在这里插入图片描述
这里插入图片描述

三种动态代理的条件:
在这里插入图片描述

注解:

以后写框架 要么用注解,要么用配置。
注解可以替换配置

Servlet 2.5只支持配置,不支持注解。
Servlet3.0都支持。
在这里插入图片描述
在这里插入图片描述
注解的属性必须加小括号,不是方法,就叫属性。

在这里插入图片描述

判断当前类是否有注解,有的话可以获取这个注解

在这里插入图片描述

注解属性的数据类型:

常用的八种:

String
enum(枚举)
Class反射类型
8种基本类型
注解类型
以上所有类型的一维数组。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

JAVA里面的工厂:

简单工厂:

应用场景:一个父类,若干个子类,工厂创建子类对象。
在这里插入图片描述

先写抽象的产品。
在写产品的父类,
然后再构造工厂。

工厂方法

在这里插入图片描述
一个父类(抽象产品)
若干子类(实体产品)。
一个父类工厂(抽象工厂)
若干个子类(实体工厂)

抽象工厂

在这里插入图片描述
多个父类
每个父类若干个子类。

也就相当于
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39263750/article/details/90898863