SSM框架搭建

news2024/11/17 13:23:14

SSM环境搭建

1

IDE的话,我用的MyEcplise,如果用Ecplise的话,需要自行配置服务器。

首先,建一个Dynamic工程,需要注意的是一定要勾选上web.xml。

将Spring框架包、jstl包、standard包、common-logging包、aopalliance包、mybatis包、mybatis-spring包、mysql-connector包、common-jbcp包、commons-pool-1.6包、aspectjweaver包复制粘贴到lib文件夹中,并且BuildPath。

2

配置前端控制器。在web.xml中加入如下代码:

其中contextConfigLocation属性值为springmvc配置文件的位置。servlet-mapping来配置需要该前端控制器解析的url类型。

3

在目录下新建Source Folder命名为config,再新建spring和Mybatis文件夹分别用于管理spring和mybatis的配置文件。另外新建mapper、service、serviceImpl、contoller、po包,还有几个文件略过,详细看下面的工程目录:

4

在config/spring目录下新建springmvc.xml文件配置springmvc的处理器映射器、处理器适配器、视图解析器,代码如下:

此配置文件的头部省略,代码自行百度。视图解析器内prefix和suffix属性可设置所有视图文件的前缀和后缀,这样就不用在每个地方都写长长地址了~另外除了配置他们三个,还需要把自定义得Hander文件加载进去,这里使用了一个扫描器,自动加载controller包下的所有Hander文件(标记为@Controller)

5

配置MyBatis的配置文件SqlConfigMap.xml:

以及db.properties、log4j.properties、applicationContext-dao配置文件,具体配置参照我另一篇文章,这里就不多说了。唯一需要注意的是,mybatis和spring需要整合,而spring和springmvc不需要整合,而且这里因为spring除了要管理dao层,还要管理service层、事务,所以有三个配置文件分别命名为applicationContext-dao、applicationContext-service、applicationContext-transaction。其中applicationContext-dao按照之前那篇文章来配置即可,用于spring与mybatis的整合。

配置spring的 事务管理。

此篇文章不涉及事务,所以不多加阐述。

到此环境差不多就配置完成了,以下用一个简单的小程序来说明下ssm是如何接受用户请求,处理并且做出相应的~

小程序

1

mysql数据库新建itemlist表:

用mybatis的逆向工程,自动生成对应的po.java、mapper.xml、mapper.java文件用于操作数据库。

为了维持可扩展性,我们应尽可能地不要修改自动生成的这些文件。新建ItemlistCustom.java并且继承由逆向工程生成的Itemlist的po类。

再建ItemlistCustom.xml文件来编写我们要实现的sql语句。

新建对应的mapper.java文件

这时候我们还缺少一个查询条件的po类

2

编写Service层,新建一个简单的ItemlistService.java文件和对应的实现类。

此处需要注意的是用到了注解@Autowired,我们直接通过spring来管理service,里面的mapper的类spring直接帮我们生成了。

我们也要相应的在applicationContext.xml中配置下service。

3

编写Contoller层。

@Contoller标识此类为Contoller类,否则需要继承Handler类,详细百度非注解处理器映射器和处理器适配器。

@Autowired自动注入service。

@RequestMapping配置url,当用户访问该url时候,会自动执行注解下的方法,也就是说一个url对应handler的一个方法。

modelAndView它所携带的信息为模型数据和逻辑视图,可以通过给它setObject来向前台传递信息。

4

最后在web.xml中配置spring。

另外新建jsp页面。

运行服务器,访问对应的url,页面就会显示数据库中商品列表。

以上仅仅是非常基础的配置,没想到就写了这么多~最后的最后还是要简单写写另外需要注意的地方。

逆向工程

a. 导入mybatis-generator.jar包

b. 编写生成文件所需的xml文件,主要是配置数据库的相关信息。

c. 编写执行文件.java,注意里面的xml文件路径最好写绝对路径。

d. 运行执行文件.java。

传参

自定义的Contoller类的方法参数可以写多个,可查下参数列表。

a.HttpRequest、HttpResponse通过这两个参数可采用原始的servlet进行开发。

b. pojo类。也就是所谓的模型。前台name可以定义为pojo类的属性名,springmvc会自动传入该模型。要传入pojo中的pojo在前台name值可定义为pojo.name进行传递。

c. 简单类型,如int、String。前台的name要和方法中的参数名保持一致。

json数据交互

SpringMVC采用@ResponseBody和@ReuqestBody注解进行转化,进而前端和后端进行交互传递信息。

拦截器

SpringMVC针对HandlerMapping进行拦截器的配置,如果某个HandlerMapping配置了拦截器,HandlerMapping映射成功后执行拦截器。

当然,它也提供全局的拦截器,SpringMVC自动注入每一个HandlerMapping中。

SpringMVC与Struts2的不同

SpringMVC是基于方法开发,而Struts2是基于类开发。SpringMVC接受值于方法的参数列表中,可以进行单例开发,而Struts2接收参数于类的成员变量中,不能进行单例开发。在单例模式下,每个线程所传入的参数值不互相影响,实现隔离。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系列十三、MongoDB聚合查询

一、概述 MongoDB聚合框架(Aggregation Framework)是一个计算框架,它可以: ①:作用在一个或者几个集合上; ②:对集合中的数据进行一系列的运算; ③:将这些数据转化为期望的形式; 从效果而言…

AIGC技术研究与应用 ---- 下一代人工智能:新范式!新生产力!(5 - AIGC 未来展望)

文章大纲 不可避免的职业替代AI 对人类思维的影响AIGC 的风险人工智能对齐 -- 价值学习 鲁棒适应参考文献与学习路径GPT 系列模型解析前序文章模型进化券商研报陆奇演讲多模态据预测,未来五年10%-30%的图片内容由AI参与生成,考虑到下一代互联网对内容需求的迅速提升,2030年A…

计算机网络管理 实验4(一) SNMP报文分析之验证SNMP协议的工作过程以及分析SNMP数据单元的格式

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

FPGA基础知识-门级建模

目录 学习目标 学习内容 1.门的类型 2.门延迟 学习时间 学习小结 学习目标 学习Verilog 提供的门级原语 理解门的实例引用、门的符号以及andor,bufnot类型的门的真值表 学习如何根据电路的逻辑图来生成verilog描述 讲述门级设计中的上升、下降和关断延迟 …

【论文解读系列】Blip-2:引导语言图像预训练具有冻结图像编码器和大型语言模型

Blip-2 BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models BLIP-2:引导语言图像预训练具有冻结图像编码器和大型语言模型 (0) 总结&实测 总结:blip-2 最大的贡献在于,提出了…

跨境电商社交媒体:选择合适的平台

正如您在使用社交媒体的九种方法中了解到的那样,跨境电商优先考虑社交媒体营销可能会更有利可图。有数十个平台可供选择,每个平台都迎合了具有不同兴趣、特征和位置的独特受众。 那么您应该关注哪个社交媒体平台以及如何以最大效率工作? 目…

【Vue全家桶高仿小米商城】——(三)VueCli4.0安装和使用

文章目录 第三章:VueCli4.0安装和使用一、VueCli4.0安装:二、创建Vue项目方式一 使用脚本搭建方式二 使用UI界面搭建 三、安装依赖方式一 Vue脚手架图形界面安装方式二、命令行安装 四、Vue DevTools安装使用两种安装方式: 第三章&#xff1a…

Linux权限解析

一、Linux用户分类 Linux下有两种用户:超级用户(root)、普通用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户的…

6.6面向对象继承

2. 面向对象特征二:继承(Inheritance) 2.1 继承的概述 说到继承我们会想到什么 在Java面向对象程序设计中的继承,多个类中存在相同属性和行为时,将这些相同的内容抽取到单独一个类(父类)中,然后所有的类继…

【备战秋招】每日一题:4月15日美团春招第二题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第二题-分糖果 在线评测链接:P1236 题目内容 某天,塔子哥去商店买了两种不同口味的糖果,分别买了 a 个和 b 个。当他回到家时,他发现他…

IDE/以glog为例实践CMake-Gui工具使用

文章目录 概述构建glog编译glog.sln解决方案glog的配置项BUILD_SHARED_LIBSBUILD_TESTINGCMAKE_CONFIGURATION_TYPESCMAKE_INSTALL_PREFIXWITH_GTESTGTest_DIRWITH_GFLAGSgflag_DIRPRINT_UNSYMBOLIZED_STACK_TRACESWITH_SYMBOLIZEWITH_FUZZINGWITH_THREADSWITH_TLSWITH_GMOCKWI…

3分钟了解如何做好项目管理和协作

目录 介绍 什么是项目管理 项目管理三要素 时间 成本 质量 项目启动阶段项目启动负责人要了解四个问题 项目规划阶段 任务分解->任务优先级安排->计划呈现->风险控制 快速呈现项目工作计划 项目启动:信息同步任务分工高效 项目跟踪&#xff1a…

实战:用docker-compose容器化springboot项目

文章目录 前言技术积累docker-compose定义docker-compose文件参数docker-compose命令 实战演示1、创建挂载路径2、编写docker-compose.yml3、启动并管理容器 写在最后 前言 前面我们学习和实战了用dockerfile构建镜像,通过镜像可以任意在docker环境容器化部署项目。…

C++静态联编和动态联编

目录 2.1静态联编 2.2动态联编 2.3虚函数面试题 2.3.1构造函数中使用memset函数 2.3.2this指针与虚函数的调用 2.3.3构造析构函数中调用虚函数 2.3.4动态和静态联编与访问属性和默认值 2.3.5动态创建对象时的析构函数 联编是指计算机程序彼此关联的过程,是把…

Fiddler汉化成功

我安装的fiddler 操作系统是:Win10 64Bit 操作系统的版本号是:v5.0.20194.41348 for .NET 4.6.1 fiddler下载地址: 我用夸克网盘分享了「02-Web调试工具-FiddlerSetup.exe」,点击链接即可保存。 链接:https://pan.quar…

什么是项目里程碑?如何为项目成功设置?

高速公路上每隔一公里就有一个标志牌,这表明你需要进一步行驶才能到达目的地的距离。虽然没有这些标志你也可以到达目的地,但它们的存在使你放心,让你确信走在正确的道路上。 项目里程碑在项目管理中也有同样的作用。当你的项目实现目的时&a…

Linux内核学习----整体概览

目录 1、概述 2、核心抽象及设计选型 2.1. 对进程和内核的抽象 2.2. 对进程地址空间的抽象 2.3. 支持可重入可抢占的内核 2.4. 放松管控与努力回收 2.5. 单块结构内核动态加载模块 2.6. 为系统中的一切活动打拍子 2.7. 一切皆文件的理念 3、Linux整体架构模块说明 3.…

对C++中const的说明

对C中const的说明 在C中,const是一个关键字,用于指定对象或变量是只读的,即不可修改。它可以应用于不同的上下文中,包括: 对象和变量声明:通过在变量或对象的声明前加上const关键字,可以将其标…

ACL2022 Document-Level Event Argument Extraction via Optimal Transport

Document-Level Event Argument Extraction via Optimal Transport 论文:https://aclanthology.org/2022.findings-acl.130/ 代码:- 期刊/会议:ACL 2022 摘要 事件论元抽取(EAE)是事件抽取的子任务之一&#xff0c…

智驾传感器新风向!拐点将至

“大家都比较关注激光雷达,尤其是在今年整个行业聚焦降本的大背景下,这个赛道还行不行?”6月8日,2023年度(第十四届)高工智能汽车开发者大会上,高工智能汽车研究院首发《2023-2025年中国汽车市场…