SSM框架搭建整合

来源:互联网 发布:联通什么套餐知乎 编辑:程序博客网 时间:2024/05/16 12:17

基于IDEA整合Spring,SpringMVC,Mybatis。

这是一段···(不可描述)的路程

首先附上文件结构图:
SSM

主要是三层,Dao层,Service层,Controller层。
由于都是面向接口编程,耦合性更低。
Dao层只有Ixxdao 接口,他的实现是通过Mybatis的map配置文件代理注入的,查看Mybatis配置文件就可以知道。

而Service接口只负责声明服务,serviceImpl则用来实现具体的业务操作。当然注入Dao接口是在serviceImpl中注入的。

然后再在Controller中注入Service接口,注意 这里是注入接口,然后用注解声明具体的实现类

下面附上这几层的代码截图:
Dao接口

Service接口

Service实现类,通过注解标记了Service名称

Controller类

整体结构大概就是这样子,下面对配置文件进行说明。

Web.xml

最基础的配置:

1.在web.xml配置监听器ContextLoaderListener
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了 ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。

2.部署applicationContext的xml文件
如何部署applicationContext的xml文件,如果在web.xml中不写任何参数配置信息,默认的路径是”/WEB-INF /applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。 如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:
定义WebAppliactionContext上下文中的bean

<context-param>    <param-name>contextConfigLocation</param-name>    <param-value>        /WEB-INF/classes/applicationContext-*.xml    </param-value></context-param>

3.定义DispatcherServlet 前段处理器,用于控制

<servlet>    <servlet-name>court</servlet-name>    <servlet-class>        org.springframework.web.servlet.DispatcherServlet     </servlet-class>    <init-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/springmvc.xml</param-value>        <!---不配置的话 默认是court-servlet.xml -->     </init-param>    <load-on-startup>1</load-on-startup></servlet><servlet-mapping>    <servlet-name>court</servlet-name>    <url-pattern>/</url-pattern></servlet-mapping>

这里的contextConfigLocation (即springMVC的配置文件中)用于配置控制器的参数,比如设置映射页面的前缀后缀等

最基本的web.xml中配置完这三个就算完成了

Springmvc.xml

<mvc:annotation-driven /> 

首先需要介入这个注解用于自动启动注解功能。
同时会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。

然后就是添加自动扫描Controller包
(这里主要配置拦截器,applicationContext中扫描所有包)
以及解析器的前后缀

web.xml

springmvc.xml

applicationContext.xml

application

MyBatisConfig.xml

MyBatis

MyBatis需要配置的内容可以去官网上看例子。

总结:

为什么 pom中

        <!-- Spring MVC-->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-webmvc</artifactId>            <version>4.1.6.RELEASE</version>            <!--<scope>provided</scope>-->        </dependency>

加了 provided 运行就有问题,当然有问题tomcat本身不提供web包,只有tomcat已包含的包,可以使用provide

    要学会根据错误提示自己寻找问题所在,并解决。    错误栈:最下面的是引起错误的起源。    根据错误 Debug 找起不来的原因,如果是ClassNotFind就在pom中导入相应的包

很重要的一点:经常访问资源文件,访问不到 很头疼!!!

target、Maven打包

路径访问:maven 打包时,默认只会把resource文件夹下的资源文件打进去的,classes是编译后的文件,所以我们可以把配置文件都放在resource下, 到时候用classpath 就能访问到。能不能访问,看target/classes中有没有 就知道了

Test 是用来测试已编译的代码的,就是classes里面所有的资源

target中, classes是你的工程编译后的类,里面没有第三方包
spring是 spring.war 的解压缩后的包,里面含有第三方包,当然也有个classes

当然如果需要把其他位置的资源放到classes中,需要另外配置。最好就是 WEN-INF下就放 web.xml 其余的都放resource中

整个工程代码:github

原创粉丝点击