zoukankan      html  css  js  c++  java
  • SSM整合(三):Spring4与Mybatis3与SpringMVC整合

    源码下载 SSMDemo

    上一节整合了Mybatis3Spring4,接下来整合SpringMVC!

    说明:整合SpringMVC必须是在web项目中,所以前期,新建的就是web项目!

    本节全部采用注解式,如要了解其他的配置方式请查看相关详细的文章!

    一、新建SpringMVC配置文件applicationContext-mvc.xml:

    内容如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <beans

        xmlns="http://www.springframework.org/schema/beans"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns:context="http://www.springframework.org/schema/context"

        xmlns:mvc="http://www.springframework.org/schema/mvc"

        xmlns:tx="http://www.springframework.org/schema/tx"

        xmlns:jdbc="http://www.springframework.org/schema/jdbc"

        xsi:schemaLocation="

           http://www.springframework.org/schema/beans

           http://www.springframework.org/schema/beans/spring-beans.xsd

           http://www.springframework.org/schema/context

           http://www.springframework.org/schema/context/spring-context.xsd

           http://www.springframework.org/schema/mvc

           http://www.springframework.org/schema/mvc/spring-mvc.xsd

           http://www.springframework.org/schema/jdbc

           http://www.springframework.org/schema/jdbc/spring-jdbc.xsd      

           http://www.springframework.org/schema/tx

           http://www.springframework.org/schema/tx/spring-tx.xsd      

            ">

        <!-- 使用注解配置 -->

        <mvc:annotation-driven />

        <!--自动扫描包 -->

        <context:component-scan base-package="com.ssm.demo2.controller" />

       

     

        <!-- ViewResolver 视图解释器 -->

        <bean

            class="org.springframework.web.servlet.view.InternalResourceViewResolver">

            <property

                name="viewClass"

                value="org.springframework.web.servlet.view.JstlView"/>

            <property

                name="prefix"

                value="/WEB-INF/jsp/" />

            <property

                name="suffix"

                value=".jsp" />

        </bean>

    </beans>

     

    二、WebApp/WEB-INF新建jsp目录存放jsp页面!
    更改WebAppindex.jsp文件(如没有,新建)内容如下



    三、web.xml文件中添加spring的相关配置文件:

    springmvcspring的一相模块,也通称为Spring配置文件!

    内容如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns="http://java.sun.com/xml/ns/javaee"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

        id="WebApp_ID"

        version="3.0" >

        <!-- Spring应用上下文, 理解层次化的ApplicationContext ,

        applicationContext-*.xml这里用了通配符,

            这里只要与spring整合的文件符合这样的格式将自动全部加载

         -->

        <context-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>classpath:spring/applicationContext-*.xml</param-value>

        </context-param>

        <!-- DispatcherServlet, Spring MVC的核心 -->

        <servlet>

            <servlet-name>SSMDemo</servlet-name>

            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

            <!-- DispatcherServlet对应的上下文配置, 默认为/WEB-INF/$servlet-name$-servlet.xml -->

            <init-param>

                <param-name>contextConfigLocation</param-name>

                <param-value>classpath:spring/applicationContext-mvc.xml</param-value>

            </init-param>

            <load-on-startup>1</load-on-startup>

        </servlet>

        <servlet-mapping>

            <servlet-name>SSMDemo</servlet-name>

            <!-- mvc-dispatcher拦截所有的请求 -->

            <url-pattern>/</url-pattern>

        </servlet-mapping>

       

        <!--forwarding 跳转的servlet-->

        <servlet>

            <servlet-name>forwarding</servlet-name>

            <servlet-class>com.spring.mvcdemo.servlet.ForwardingServlet</servlet-class>

        </servlet>

        <!--配置文件编码  -->

        <filter>

            <filter-name>CharacterEncodingFilter</filter-name>

            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

            <init-param>

                <param-name>encoding</param-name>

                <param-value>utf-8</param-value>

            </init-param>

        </filter>

        <filter-mapping>

            <filter-name>CharacterEncodingFilter</filter-name>

            <url-pattern>/*</url-pattern>

        </filter-mapping>

        <!--Spring 全局上下文的 监听,当配置必须有 applicationContext.xml文件,否则报错  -->

        <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

        </listener>

    </web-app>

     

    四、配置tomcat
    eclipse windows->preferences ->Serverruntime environment 添加:

     

    选择自己本地的安装版本号

     

    选择tomcat安装目录:

     

    Finish 完成!

     

    4.2)在server控制面进行添加服务器

    前面配置好了,直接就会显示出,刚配好的tomcat,点完成!

    双击服务器进行配置

     

    把配置改成以上图所示:

    4.2)部署项目

    在项目名右键 run on server


    五、开启tomcat部署,报错:

     

    这是因为在上一节中 配置sqlSessionFactory时配置文件少加了classpath: !

    applicationContext-dao.xml中把定义sqlSessionFactory中的配置加上classpath:

     

     

    再部署再报如下错:

     

    提示缺少jar包,在pom.xml中添加:

     

          <dependency>

                <groupId>org.hibernate</groupId>

                <artifactId>hibernate-validator</artifactId>

                <version>5.0.0.Final</version>

            </dependency>

    然后maven ->update project 一下,再重新部署,ok!

     

    这时显示index.jsp页面的内容只说明web环境搭建好,配置文件是ok滴,并不代表与springmvc整合成功,接下来,写ControllerService,从数据库中查询数据并显示,来测试整合成功!

    六、写Controller

    com.ssm.demo2.controller新建UserController.java内容如下:

    @Controller

    @RequestMapping("/user")

    publicclass UserController {

       @Autowired

       UserMapper userMapper;

      

       @RequestMapping("/list")

       public ModelAndView  userlist() throws Exception{

          List<User> users=userMapper.findUserList("");

          ModelAndView mView=new ModelAndView();

          mView.addObject("users",users);

          mView.setViewName("list");//返回的jsp页面名称

          returnmView;

       }

    }

    七、在jsp目录下新建list.jsp页面,内容:

    <%@ page language="java" contentType="text/html; charset=UTF-8"

       pageEncoding="UTF-8"%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <html>

    <body>

       <h2>SSM 部署成功! </h2>

       <p>用户名:</p>

       <h3>${users}</h3>

    </body>

    </html>

     

    八、重新部署:

    在输入地址:http://localhost:8080/ssm_demo2/user/list

    结果如下:

     

    查询与显示的结果是一样ok!

    九、写Service

    上面在Controller里直接操作 mapper,这是不规范的,现在在中间加上Service

    com.ssm.demo2.service中新建UserService.java接口层

    publicinterface UserService {

       public List<User>findUser(String name) throws Exception;

    }

    9.1)新建实现类的包名com.ssm.demo2.service.impl

    并写实现类UserServiceImpl.java

    @Service

    publicclass UserServiceImpl implements UserService{

       @Autowired

       UserMapper userMapper; //spring框架配置了注解,自动注入

       @Override

       public List<User> findUser(String name) throws Exception {

          // TODO Auto-generated method stub

          List<User> users=userMapper.findUserList(name);

          returnusers;

       }

    }

    再把UserController.java改成如下:

     

    @Controller

    @RequestMapping("/user")

    publicclass UserController {

       /*@Autowired

       UserMapper userMapper;*/

       @Autowired

       UserServiceImpl userServie;

      

       @RequestMapping("/list")

       public ModelAndView  userlist() throws Exception{

    //    List<User> users=userMapper.findUserList("");

          List<User> users=userServie.findUser("");

          ModelAndView mView=new ModelAndView();

          mView.addObject("users",users);

          mView.setViewName("list");//返回的jsp页面名称

          returnmView;

       }

    }

    再重新布署:报如下错:

     

     

    提示在UserController.java出错,往后再看,显示如下:

    说无法注入字段,这说明spring注解配置的无效,根据配置的分类applicationContext-dao.xml是配置管理数据库及spring框架配置的,

    applicationContext-mvc.xml是配置SpringMVC模块相关的:

    打开applicationContext-dao.xml查看注解配置,发现包名写错:

     

    这是Spring注解,这里包应该是根包名,而不是配置mvc注解的包名,

    改成 com.ssm.demo2,再重新部署:显示

     

    显示结果为空:可以自行把日志打印的SQl语句 运行,验证结果,的确为空!

    部署ok!

    但时细心的话,会发现在启动Tomcat有报错一条错误:

    因太快,没有截图上来,错误 如下:

    提示在 spring配置文件的 xsi:schemaLocation= 中必须是偶数uri

    去掉最后spring-dwr-3.0.xsd这条uri,即可;

    注:在配置这些uri时,后面最好不要加上版本号信息,让系统自动适配版本号!减少因版本号不配而报错!

     

    此时,Mybatis3Spring4SpringMVC整合成功!

     

    源码下载 SSMDemo



  • 相关阅读:
    在前后端分离的SpringBoot项目中集成Shiro权限框架
    过账销售订单装箱单报错:用库存单位数量表示的实际剩余数量不能为零
    外部系统调用AX服务
    InventSum Closed and ClosedQty
    固定资产日志过账报错
    AX批处理相关
    AX2012打开报表报错
    有折扣的销售订单过账
    AX版本查询
    AX2012 SSRS Report 相关
  • 原文地址:https://www.cnblogs.com/ut2016-progam/p/6254597.html
Copyright © 2011-2022 走看看