SSM 整合

一:SSM整合

1.整合策略

SSM = Spring + SpringMVC + Mybatis = (Spring + Mybatis)+ SpringMVC
先整合 Spring + Mybatis
然后再整合 SpringMVC
基于的需求:查询 Account 表的全部数据显示到⻚⾯

2.Mybatis整合Spring

image.png

image.png

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/bank
jdbc.username=root
jdbc.password=123456

Spring 配置⽂件

applicationContext-dao.xml

image.png

image.png

applicationContext-service.xml

image.png

image.png

AccountMapper接⼝

image.png

AccountMapper.xm

image.png

测试程序

image.png

image.png

3.整合SpringMVC

image.png

image.png

添加SpringMVC ⼊⻔案例

springmvc.xml

image.png

Controller类

image.png

web.xml

image.png

image.png

4.附录

乱码问题解决

Post请求乱码,web.xml中加⼊过滤器

image.png

image.png

Get请求乱码(Get请求乱码需要修改tomcat下server.xml的配置)

image.png

玩转Spring MVC 必备设计模式

image.png

image.png

测试

image.png

上述代码可以解决问题,但是从代码设计的⻆度还是存在⼀些问题

增加或者修改打折⽅案时必须修改 BuyGoods 类源代码,违反了⾯向对象设计的 “开闭原
则”,代码的灵活性和扩展性较差。
打折⽅案代码聚合在⼀起,如果其他项⽬需要重⽤某个打折⽅案的代码,只能复制粘贴对应
代码,⽆法以类组件的⽅式进⾏重⽤,代码的复⽤性差。
BuyGoods 类的 calculate() ⽅法随着优惠⽅案的增多会⾮常庞⼤,代码中会出现很多if分
⽀,可维护性差

此时,我们可以使⽤策略模式对 BuyGoods 类进⾏重构,将打折⽅案逻辑(算法)的定义和使⽤
分离。
抽象策略类 AbstractDiscount,它是所有具体打折⽅案(算法)的⽗类,定义了⼀个 discount
抽象⽅法

image.png

四种具体策略类,继承⾃抽象策略类 AbstractDiscount,并在 discount ⽅法中实现具体的打折
⽅案(算法)

image.png

image.png

image.png

image.png

类 BuyGoods,维护了⼀个 AbstractDiscount 引⽤

image.png

测试

image.png

image.png

重构后:

增加新的优惠⽅案时只需要继承抽象策略类即可,修改优惠⽅案时不需要修改BuyGoods类
源码;
代码复⽤也变得简单,直接复⽤某⼀个具体策略类即可;
BuyGoods类的calculate变得简洁,没有了原本的if分⽀;

模板⽅法模式

模板⽅法模式是指定义⼀个算法的⻣架,并允许⼦类为⼀个或者多个步骤提供实现。模板⽅法模式
使得⼦类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于⾏为型设计模式。
采⽤模板⽅法模式的核⼼思路是处理某个流程的代码已经具备,但其中某些节点的代码暂时不能确
定。此时可以使⽤模板⽅法

示例

image.png

image.png

Java岗位⾯试者

image.png

前端岗位⾯试者

image.png

客户端测试类

image.png

image.png

image.png

适配器模式

image.png

image.png

image.png

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一生酷到底

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值