SSM框架搭建整合

基于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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章