搭建SpringMVC+Spring+MyBatis简要过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/s3395719/article/details/78316344

准备搭建一个个人网站,由于以前没搭建过SSM框架,上一间公司虽然使用Struts2+Spring+MyBatis,但是基本上是在框架之上写业务,对几大传统的框架理解还是很浅,而现在工作的公司使用的是Play框架,有别于SSM这类框架,是一种非常轻量级的框架。本来有打算用play的,但是考虑一些ssm太久没使用过了,这次就顺便当练手吧。

不打算去记录搭建的每一个步骤,因为这类型的文章实在太多了。基本上网上的资源是完全且轻松地搭建出来的。何况我也仅仅是跟着他们的指引(ctrl+c)搭出来的。还没搭建的时候觉得应该是挺简单的,但是实际搭建的时候还是遇到不少烦人的小问题。所以特意记录下来。文章最底有项目源码

简要步骤:

一、Maven搭建:

Maven管理项目有很多优点,目前对于我来说最方便的功能是不用自己手动导入jar包,直接在pom.xml文件描述,它会自动从网上下载导入。
下载maven包解压配置环境,修改配置文件。关联eclipse
网上的详细教程
项目结构:

项目结构

二、SpringMVC:

springMVC的controller与Struts2不一样,Struts2的访问路径一般方式(可以修改)是 url/项目名/类!方法, 而springMVC则是使用注解方法定义路径:

@Controller //声明自己是一个controller
public class UserController {

    @Resource  
    public UserService userService;

    @RequestMapping("/hello")  //访问路径 127.0.0.1/项目名/hello
    public String test() {
        User user = new User();
        user.setId(3);
        user.setUsername("hello");
        user.setPassword("oksai");
        userService.insert(user);
        return "/index"; //它会返回 index.jsp
    }
}

使用SpringMVC需要在web.xml配置DispatcherServlet以及拦截路径

web.xml

    <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:SpringMVC-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    //所有访问都必须经过DispatcherServlet
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

SpringMVC-servlet.xml(这个文件名是可以自定义的,在web.xml里定义)

    <!-- 设置使用注解的类所在的jar包 -->
    <context:component-scan base-package="com.blogs.controllers" />

    <!-- 开启注解模式驱动 -->  
         <mvc:annotation-driven></mvc:annotation-driven>
       <!-- 扫包 -->
       <context:component-scan base-package="com.springmvc.*"></context:component-scan>
       <!-- 静态资源过滤 -->
         <mvc:resources location="/resources/" mapping="/resources/**"/>


         <!-- 视图渲染 jsp/freemaker/velocity-->
         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
             <!-- 制定页面(jsp)存放的路径-->
             <property name="prefix" value="/WEB-INF"></property>
             <!-- 文件的后缀 Controller返回的字符串会自动加上".jsp"后缀-->
             <property name="suffix" value=".jsp"></property>
         </bean> 

基本上配置SpringMVC就是这样的流程:配置web.xml,配置SpringMVC-servlet,创建Controller,注解声明。

三、Spring

Spring有依赖注入和面向切面两大特点。依赖注入不需要开发者手动的创建对象(new),只需要在Application.xml中声明

Application.xml是Spring的核心配置文件,可以配置数据库、事务、日志、与其它框架搭配使用等核心基础功能。是SSM项目的核心文件。

//autowire属性声明注入的几种方式:默认(手动关联)、名字、类型,
<bean id="userService" class="com.blogs.service.impl.UserServiceImpl" autowire="byName"/>

同时需要在web.xml里面声明监听器ContextLoaderListener,(Spring的入口)

     <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext*.xml</param-value>
        <!-- 默认是/WEB-INF/applicationContext.xml -->
     </context-param>

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

四、MyBatis:

Application.xml文件

<!-- spring配置MyBatis,不再需要配置mybatis的映射文件,注入SqlSessionFactoryBean-->  
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" autowire="byName">  
        <property name="dataSource" ref="dataSource" />  
        <!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:com.blogs.mapper.*.xml"></property>  
    </bean>  

//数据库驱动jar包别忘了

@Repository
public class UserDaoImpl implements UserMapper {

    @Resource
    SqlSessionFactory sqlSessionFactory;

    private SqlSession getSession() {
        return sqlSessionFactory.openSession();
    }

    public int insert(User record) {
        return getSession().insert("com.blogs.mapper.UserMapper.insert", record);
    }
}

UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 与mapper路径一致 -->
<mapper namespace="com.blogs.mapper.UserMapper">

  <insert id="insert" parameterType="com.blogs.model.User">
    insert into user (id, userName, passWord
      )
    values (#{id}, #{username}, #{password}
      )
  </insert>

</mapper>

五、MyBatis-Generator工具

这个工具是能根据数据库的表自动生成最基础的mapper.xml和dao接口文件,使用方法非常的简单,在eclipse中,Help->eclipse MarketPlace,搜索 “MyBatis-Generator”,安装.重启eclipse。
创建一个generatorConfig.xml文件,网络上很多配置模板,直接复制就行,,我也是引用别人的详细教程
简单来说就是1.对应数据库驱动包、数据库url/账户/密码/数据表,生成的文件存放路径。

总结:网上有大量前人的教程,搭建基础框架是完全没难度的,唯一需要的就是细心、耐心,我在配置数据库数据的jdbc.properties文件时多了一个空格,报错了,找了半天一度想放弃,幸好网上也有前人遇到过同样的问题。站在巨人的肩膀上才能看得更远,不要一个人钻牛角尖,非常耗时间。多做笔记很重要

实习至今已经将近工作一年了,毕业四个月但是却感觉自己的技术提升非常的缓慢。一直在找提高学习效率的方法,碎片化知识的时代,知识零散,基本上各个领域的大牛都推荐 做笔记+写作。我也感觉到在写作的过程中很多脑海里是清晰的知识,再去用文字展示出来的时候逻辑表达很凌乱。

这篇文章比较零散,只是本人的学习笔记,如果需要系统的教程,可能不适合大家。另外文章用了网上其他人的资源和代码,有些是直接复制修改的,来源我自己也忘记了,如果文章的内容侵犯到您的版权请通知我。

项目源码

猜你喜欢

转载自blog.csdn.net/s3395719/article/details/78316344
今日推荐