1. 什么是SSM:
SSM框架是Spring、Spring MVC和MyBatis这三个框架的组合,主要用于开发Java Web应用程序。它是一种标准的MVC(Model-View-Controller)模式,包含了以下几个主要部分:
-
Spring:一个轻量级的Java开发框架,提供控制反转(IoC)和面向切面编程(AOP)等功能。Spring负责业务对象的管理,通过IoC容器管理对象的创建和依赖注入,提高了代码的可测试性和可维护性。
-
Spring MVC:基于Spring框架的MVC模式的Web框架,用于处理Web请求和响应。它分离了控制器、视图和模型,简化了Web请求和响应的处理过程。
-
MyBatis:一个持久层框架,通过XML或注解方式提供灵活的SQL映射和数据库访问,简化了数据库操作的编写。
SSM框架的四层结构包括:
- DAO层(Mapper层):负责数据持久层的工作,与数据库进行交互。
- Service层:主要负责业务模块的逻辑应用设计。
- Controller层(Handler层):负责具体的业务模块流程的控制。
- View层:主要与用户界面相关。
这种框架组合的优势在于它的灵活性、易扩展性和高性能,因此在Java Web应用程序的开发中得到了广泛应用,尤其是在中小型项目和企业级应用中123。
2. SSM的优势:
SSM框架的优势可以从以下几个方面进行详细说明:
-
高度集成:Spring、Spring MVC和MyBatis三个框架的结合提供了一个完整的解决方案,涵盖了Web应用的多个层面,从表现层到业务逻辑层再到持久层。
-
简化开发:
- Spring的IoC:通过控制反转,减少了组件之间的耦合,使得对象的创建和依赖关系的管理更加灵活,简化了代码的编写和维护。
- Spring的AOP:面向切面编程允许开发者在不修改业务逻辑代码的情况下,添加额外的功能(如日志、事务管理等),提高了代码的模块化。
- MyBatis的SQL映射:简化了数据库操作,开发者可以更加专注于SQL的编写,而不是传统的JDBC代码。
-
灵活性和扩展性:
- 可配置性:SSM框架提供了丰富的配置选项,使得开发者可以根据项目需求灵活配置框架行为。
- 易于集成其他框架:由于Spring框架的广泛应用和良好的社区支持,SSM框架可以很容易地与其他流行的Java框架和库集成。
-
高效性能:
- MyBatis的动态SQL:减少了数据库的交互次数,提高了数据操作的效率。
- Spring的声明式事务管理:简化了事务控制,提供了更高效的性能和更好的资源管理。
综上所述,SSM框架的优势在于它提供了一个高效、灵活且易于维护的Java Web应用开发平台,使得开发者能够更加专注于业务逻辑的实现,而无需过多关注底层的技术细节。
3. SSM实操:
案例实现:
代码详解:
1. 经典的三层架构,运用一些注解提高效率,在控制层调用服务层方法,得到的数据送到作用域中等前端页面取;
public void setAdvService(AdvService advService) {
this.advService = advService;
}
@Resource
private AdvService advService;
@RequestMapping("/ceshi.action")
public ModelAndView query() {
List<Adv> advs = advService.qurryAll();
// System.out.println(advs);
ModelAndView mv = new ModelAndView();
mv.addObject("LIST", advs);
mv.setViewName("/advlist.jsp");
return mv;
}
2. 删除功能:删除键设置为一个超链接并添加事件,弹出一个弹窗,让用户选择是否确定删除,点击向服务端发送删除请求,客户端接收请求,根据得到的id,删除指定的数据;
<a href="delete.action?advId=<%=adv.getAdvId()%>" onclick="return confirmDelete(this);">删除</a>
<script>
function confirmDelete(link) {
// 弹出确认框
var isConfirmed = confirm('您确定要删除这条记录吗?');
// 如果用户点击“确定”,则返回 true,允许链接的默认行为(跳转)
// 如果用户点击“取消”,则返回 false,阻止链接的默认行为
return isConfirmed;
}
</script>
@RequestMapping("/delete.action")
public ModelAndView delete(HttpServletRequest request) {
int advId = Integer.parseInt(request.getParameter("advId"));
advService.delete(advId);
return query();
}
3. 新增与修改功能:通过表单将需要添加或修改的数据传到服务端,进行新增或修改功能
<form action="addadv.action" method="post" enctype="application/x-www-form-urlencoded; charset=UTF-8">
<table>
<tr>
<td>广告标题:</td>
<td><input type="text" name="advTitle"></td>
</tr>
<tr>
<td>过期时间:</td>
<td><input type="date" name="expiredTime"></td>
</tr>
<tr>
<td>广告分类:</td>
<td>
<select name="categoryId">
<option value="1">游戏</option>
<option value="2">生活</option>
<option value="3">吃喝玩乐</option>
<!-- 这里可以添加更多的选项 -->
</select>
</td>
</tr>
<tr>
<td>广告内容:</td>
<td><textarea name="advContent" rows="4" cols="50"></textarea></td>
</tr>
<tr>
<td>备注:</td>
<td><textarea name="remark" rows="2" cols="50"></textarea></td>
</tr>
</table>
<br>
<input type="submit" value="新增广告">
</form>
4.总结:
这个小项目对于杠学会SSM框架的我还是有一定难度的,不过看似很难,其实就是将三个框架的东西整合到一起,通过翻看之前框架的代码后,写起来也是顺手了很多