SSM框架

SSM框架由于它的优势在近一段时间很流行,本文力图用最简单的例子和语言讲解SSM框架。

SSM框架简介

首先我们看一下SSM框架指的是什么?
SSM框架指使用Spring,SpringMVC和Mybatis三大框架完成java web项目的开发,所以SSM框架集之前的各种讲解于一身,如果之前的Spring分讲,SpringMVC分讲以及Mybatis分讲弄懂了,相信这个SSM框架对于你来说也不是什么问题。

SSM搭建

先看一下我的项目结构
这里写图片描述

GItHub项目地址

我们做一个项目,都是从底层开始搭起,然后逐层向上,就好像盖房子,所以我们首先应该搭建的就是mybatis。

mybatis

这里我使用了mybatis的代码自动生成插件,省了很多时间,具体移步这里

紧接着我们还需要一个Spring的配置文件,整个dao层才算配置完毕。
spring-dao.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"
       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-4.3.xsd">

    <!--加载数据库连接配置-->
    <context:property-placeholder location="classpath:db.properties"/>

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>
    </bean>


    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <!--数据源-->
    <property name="dataSource" ref="dataSource"/>
        <!--扫描model包,-->
        <property name="typeAliasesPackage" value="com.yubotao.POJO"/>
        <!--扫描sql配置文件-->
        <property name="mapperLocations" value="classpath:mapping/PersonMapper.xml"/>
    </bean>


    <!--扫描dao接口,动态实现接口,并且注入到spring容器中
    就是xml配置文件中namespace中的接口
    -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--给出要扫描的包的地址-->
        <property name="basePackage" value="com.yubotao.Dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

</beans>

里面的配置老生常谈,总结下来就是:加载数据库源;配置session;配置mapper相关的接口,能够让我们的mapping文件和dao接口生效。

这里也涉及了Spring的配置,因为我们是直接整合了Spring和mybatis。

之后是新建一个Service,这个太简单了,就不提了。
关于Service配置文件里面就一个打开注解的标签。

SpringMVC

根据我们之前对于SpringMVC的讲解,我们按照访问流程来的话,应该是先配置web.xml,然后是spring-web.xml,最后才是PersonController

但是实际开发中,我们是反其道而行。
PersonController

package com.yubotao.controller;

import com.yubotao.POJO.Person;
import com.yubotao.service.PersonService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created by yubotao on 2017/12/05.
 */
@Controller
public class PersonController {

    private static final Log log = LogFactory.getLog(PersonController.class);

    @Autowired
    private PersonService personService;

    @RequestMapping(value = "/person/{id}",method = RequestMethod.GET)
    @ResponseBody
    public Person getPerson(@PathVariable Long id){
        Person person = personService.getPersonById(id);
        log.info("person : " + person);
        return person;
    }

}

spring-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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-3.0.xsd">

    <context:annotation-config/>

    <!-- 扫描service包下所有使用注解的类型 -->
    <context:component-scan base-package="com.yubotao.controller"/>

    <!-- 2.静态资源默认servlet配置,将静态请求转由web容器处理
               (1)加入对静态资源的处理:js,gif,png
               (2)允许使用"/"做整体映射
            -->

    <mvc:annotation-driven/>

    <mvc:default-servlet-handler/>

    <!--<mvc:resources mapping="" location=""/>-->

    <!-- 3.配置jsp 显示ViewResolver ,根据前后缀获取view物理文件路径-->
    <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/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

</beans>

这里面之前的文章也有提过,简单总结:配置四个必要的标签,开启注解以及静态资源等;配置一个视图解析器,这个其实并不是必要的,以为我在本项目中没有使用到视图,直接使用的是json格式数据,但是由于这个是最常用的,所以在这里带上。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="3.1"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">


  <display-name>Archetype Created Web Application</display-name>

  <!--DispatcherServlet是前置控制器,-->
  <!--拦截匹配的请求,Servlet拦截匹配规则要自己定义,-->
  <!--把拦截下来的请求,依据相应的规则分发到目标Controller来处理,-->
  <!--是配置springMVC的第一步。-->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件
            spring-dao.xml,spring-service.xml,spring-web.xml
            Mybatis - > spring -> springmvc
         -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
    <!--如果我们在web.xml中设置了多个servlet的时候,
    可以使用load-on-startup来指定servlet的加载顺序,
    服务器会根据load-on-startup的大小依次对servlet进行初始化。-->
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>


</web-app>

这里面已经讲web.xml的配置精简到最低了,里面没有配置文字过滤器,请求方法过滤器等等,没有监听器,只配置了一个核心的DispatcherServlet拦截器,这个在之前也有比较详细的讲解,这里不赘述。

到此,一个SSM项目就配置完毕了,之后我们配置一下web容器,然后启动访问一下我们的接口,可以看到效果图
这里写图片描述

到此为止,这个简单的SSM框架就梳理完了,因为实在是没涉及很复杂的东西,所以本文就到此结束,不再展开。

  • 1
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值