欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSM框架搭建整合

程序员文章站 2022-07-02 21:47:15
...

基于IDEA整合Spring,SpringMVC,Mybatis。

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

首先附上文件结构图:
SSM框架搭建整合

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

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

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

下面附上这几层的代码截图:
SSM框架搭建整合

SSM框架搭建整合

SSM框架搭建整合

SSM框架搭建整合

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

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中扫描所有包)
以及解析器的前后缀

SSM框架搭建整合

SSM框架搭建整合

applicationContext.xml

SSM框架搭建整合

MyBatisConfig.xml

SSM框架搭建整合

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中导入相应的包

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

SSM框架搭建整合

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

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

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

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

整个工程代码:github

相关标签: spring