SSM 学习笔记一:SSM前言

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38532159/article/details/84479976

主要内容:一种系统架构,两个常用工具,三例设计模式。

一、系统架构

1.1 Java三层架构
在这里插入图片描述
1.2 MVC
在这里插入图片描述
1.3 MVC与三层架构
在这里插入图片描述
1.4 SSM与三层架构
在这里插入图片描述
总结: Java都需要遵循三层架构原则,三层架构中的视图层一般都遵循MVC。Spring是管理和生成三层架构的一种框架;SpringMVC是一种实现视图层的特殊MVC;MyBatis是一种实现持久层的方式。

二、代理模式

理解: 代理模式的出现是因为某些情况下一个对象不适合或不能被另一个对象引用 ,于是会提供一种代理以控制对对象的访问,就好比打官司的时候,当事人会请代理律师。律师分为法律顾问和普通律师,代理也分为静态代理和动态代理,区别就在于代理关系建立的时间。

2.1 静态代理
即法律顾问,在官司产生前,即程序运行前便确定好的。需要自己定义代理类,并要与目标类实现相同的业务接口。

2.2 动态代理
即普通律师,在官司产生后,即在程序运行时确定的。实现方式有以下两种。
在这里插入图片描述
2.2.1 JDK动态代理
通过java.lang.reflect.Proxy类实现代理,使用其newProxyInstance()方法。主业务逻辑增强类需要实现接口InvocationHandler,并且重写invoke()方法,增强逻辑的代码就写在该方法中。
使用JDK的Proxy实现代理,要求目标类与代理类实现相同的接口。若目标类不存在接口,则无法使用该方式实现。

2.2.2 CGLIB动态代理
对于无接口的目标类,就需要使用CGLIB实现,但条件是目标类必须能被继承,不能是final类。
通过代理生成工厂类实现,该类需要实现MethodInterceptor接口。在类中需要做三件事:(1)声明目标类的成员变量,并创建以目标类对象为参数的构造器。(2)定义代理的生成方法,用来创建代理对象,其中需要创建一个增强器Enhancer并设置回调setCallBack()。(3)定义回调接口方法,对目标类的增强就在这里完成。

总结: 代理就是委托其他类做自己不擅长或者不想直接参与的事情。

三、适配器模式

理解: 适配器模式就是某些类的接口转换为可以统一管理的接口,目的在于使得没有办法一起工作的类一起工作,方便管理。类比于将不同工作的人统一组织起来,一起工作。

3.1 不使用适配器
当想调用各个类时,只能分别调用。
在这里插入图片描述
3.2 使用单适配器实现类
因为只有一个适配器接口,当想调用类时,需要用适配器接口进行匹配。
在这里插入图片描述
3.3 多适配器实现类
用总的适配器接口去匹配各个类的适配器,实现统一管理。
在这里插入图片描述
3.4 缺省适配器模式
当Targer目标角色有很多方法,那么每个适配器都要去实现接口中这些方法,这样做太麻烦。于是可以首先实现一个默认适配器,然后实际的实现目标角色接口类去继承这个默认适配器,然后重写默认实现的方法即可。
在这里插入图片描述
总结: 适配器模式的根本原则便是统一管理,这样在使用类的时候不会过于零散。

四、模板方法设计模式

理解: 某些类的实现可能会需要几个固定步骤。而对于该类的不同对象,其中的有些步骤的实现是固定不变的,有些是完全不同的,有些是可变可不变的,于是就会用到模板方法设计模式。好比在完成网络购物的时候,登录是每个用户都必须要做的,选择物品是每个用户都不一样的,选择付款时只有固定的几种,默认支付宝,但也可以使用银行卡支付。这便是模板方法设计模式。

4.1 模板方法的构成
在这里插入图片描述
4.2 模板方法的实现
一个父类,包含模板方法和步骤方法;若干子类,继承父类,并重写抽象方法和选择性重写钩子方法。

总结: 模板方法设计模式是一种设计思想,在实际工程中会普遍用到,可以节省代码量。

五、JUnit测试

理解: JUit测试是一种方便且高效的测试工具。

5.1 测试步骤
1、下载Jar包并在工程中导入。
2、创建测试类:有两种方式,一种是使用IDE向导自动创建;一种是使用注解手动创建。
3、@Before @After @Test

总结: 此工具就是用来测试的,方便调试。

六、Log4j与Log4j2

理解: 日志信息根据用途与记录内容的不同,分为调试日志、运行日志、异常日志等,日志记录对软件的开发时十分有用的。Log4j与Log4j2是Apache公司开发的日志记录工具。

6.1 日志级别:fatal、error、warn、info、debug、trace

6.2 日志输出控制文件主要构成:输出位置、输出级别、输出格式

6.3 日志记录的实现步骤
1、导入Jar包
2、放入日志输出控制文件
3、代码中实现日志记录:在需要输出日志的类中创建日志对象logger,并通过logger的方法在代码中加入日志输出语句。如:logger.debug(“this is debug message”)

总结: Log4j与Log4j2的原理类似,配置方式和实现方式有所不同。学习日志记录主要是掌握输出控制文件的阅读与编写。

猜你喜欢

转载自blog.csdn.net/weixin_38532159/article/details/84479976
ssm