ssm框架~环境搭建以及相关配置

ssm框架的学习小结,主要是初期环境的搭建配置以及信息的交互处理过程,非技术人员请绕道~有什么疑问可以关注我的公众号:多一点思考。

SpringMVC其实就是Spring框架的一个模块,是一个基于MVC的WEB开发框架。它主要负责的是与前端信息的交互。

大致过程:当客户端发起请求时,会先到达DispatcherServlet(前端控制器,其实就是一个Servlet),前端控制器根据HandlerMapping(处理器映射器)查找url对应的Handler,之后再调用HandlerAdapter(处理器适配器)来执行对应的Hanlder,这时候Handler会返回一个带有逻辑视图以及模型数据的ModelAndView给HandlerAdpater并再次返回给DispatcherServlet,前端控制器调用视图解析器对ModelAndView进行视图渲染,并且向前端相应处理结果。

SSM环境搭建

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。

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

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

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

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

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

配置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是如何接受用户请求,处理并且做出相应的~

小程序

mysql数据库新建itemlist表:

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

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

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

新建对应的mapper.java文件

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

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

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

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

编写Contoller层。

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

@Autowired自动注入service。

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

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

最后在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接收参数于类的成员变量中,不能进行单例开发。在单例模式下,每个线程所传入的参数值不互相影响,实现隔离。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容