【依葫芦画瓢】SSM-CRUD --- 1

在工作实际开发中,一直用Struts+Spring+MyBatis,虽然算的上SSM,但和SpringMVC + Spring + MyBatis稍有差别。基于学习新技术和简单入门的考虑,便依葫芦画瓢完成了『SSM-CRUD』项目,由于项目篇幅较长,会分成多篇展示。

本文主要讲解项目概况及项目中的主要配置文件

 

先上个效果图,主要实现的是查询功能:

【依葫芦画瓢】SSM-CRUD --- 1_第1张图片

技术点

  • 基础框架-SSM(SpringMVC+Spring+MyBatis) 

  • 数据库-MySQL 

  • 前端框架-bootstrap快速搭建简洁美观的界面 

  • 项目的依赖管理-Maven 

  • 分页-pagehelper 

  • 逆向工程-MyBatis Generator

     

功能点

  • 分页显示

  • 数据校验 : jquery前端校验+JSR303后端校验

  • ajax请求

  • Rest风格的URI:使用HTTP协议请求方式的动词,来表示对资 源的操作(GET(查询),POST(新增),PUT(修改),DELETE (删除))

     

基础环境搭建

  • 创建一个maven工程 

  • 引入项目依赖的jar包  :spring 、 springmvc 、 mybatis 、 数据库连接池,驱动包 、 其他(jstl,servlet-api,junit)

  •  引入bootstrap前端框架 

  • 编写ssm整合的关键配置文件 : web.xml,spring,springmvc,mybatis,使用mybatis的逆向工程生成对应的bean以 及mapper 

  • 测试mapper

 

重要代码说明

    web.xml

    主要是配置web项目启动时加载的信息,加载顺序是:context-param -> listener -> filter -> servlet。

 


 
 <context-param>
   <param-name>contextConfigLocationparam-name>
   <param-value>classpath:applicationContext.xmlparam-value>
 context-param>

 
 <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
 listener>

 
 
 <servlet>
   <servlet-name>dispatcherServletservlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
   <load-on-startup>1load-on-startup>
 servlet>

 
 <servlet-mapping>
   <servlet-name>dispatcherServletservlet-name>
   <url-pattern>/url-pattern>
 servlet-mapping>

 
 <filter>
   <filter-name>CharacterEncodingFilterfilter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
   <init-param>
     <param-name>encodingparam-name>
     <param-value>utf-8param-value>
   init-param>
   
   <init-param>
     <param-name>forceRequestEncodingparam-name>
     <param-value>trueparam-value>
   init-param>
   <init-param>
     <param-name>forceResponseEncodingparam-name>
     <param-value>trueparam-value>
   init-param>
 filter>
 <filter-mapping>
   <filter-name>CharacterEncodingFilterfilter-name>
   <url-pattern>/*url-pattern>
 filter-mapping>
 
 
 <filter>
   <filter-name>HiddenHttpMethodFilterfilter-name>
   <filter-class>org.springframework.web.filter.HiddenHttpMethodFilterfilter-class>
 filter>
 <filter-mapping>
   <filter-name>HiddenHttpMethodFilterfilter-name>
   <url-pattern>/*url-pattern>
 filter-mapping>

 

Spring的配置文件:applicationContext.xml

 


 <context:component-scan base-package="com.tyron">
   <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
 context:component-scan>

 
 
 <context:property-placeholder location="classpath:dbconfig.properties"/>
 
 
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
   <property name="jdbcUrl" value="${jdbc.jdbcUrl}">property>
   <property name="driverClass" value="${jdbc.driverClass}">property>
   <property name="user" value="${jdbc.user}">property>
   <property name="password" value="${jdbc.password}">property>
 bean>
 
 
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   
   <property name="configLocation" value="classpath:mybatis-config.xml">property>
   <property name="dataSource" ref="dataSource">property>
   
   <property name="mapperLocations" value="classpath:mapper/*.xml">property>
 bean>
 
 
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   
   <property name="basePackage" value="com.tyron.crud.dao">property>
 bean>
 
 
 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
   <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
   <constructor-arg name="executorType" value="BATCH"/>
 bean>
 
 
 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    
   <property name="dataSource" ref="dataSource">property>
 bean>
 
 <aop:config>
   
   <aop:pointcut expression="execution(public * com.tyron.crud.service..*(..))" id="txPoint"/>
   
   <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
 aop:config>

 
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>
     
     <tx:method name="*"/>
     
     <tx:method name="get*" read-only="true"/>
   tx:attributes>
 tx:advice>

 

Spring MVC的配置文件:dispatcherServlet-servlet.xml

有两种配置方式:①Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”

                        ②配置在classpath下,指定配置名(springMVC.xml)

 

 
    contextConfigLocation
    classpath:springMVC.xml

 

dispatcherServlet-servlet.xml

 <context:component-scan base-package="com.tyron" use-default-filters="false">
   
   <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
 context:component-scan>
 
 
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/views/">property>
   <property name="suffix" value=".jsp">property>
 bean>
 
 
 
 <mvc:default-servlet-handler/>
   
 <mvc:annotation-driven/>

 

MyBatis的配置文件:mybatis-config.xml

 

<settings>
   
   <setting name="mapUnderscoreToCamelCase" value="true" />
 settings>
 <typeAliases>
   <package name="com.tyron.crud.bean"/>
 typeAliases>


 <plugins>
   <plugin interceptor="com.github.pagehelper.PageInterceptor">
   plugin>
 plugins>

 

说明

①此文是SSM的简单入门,上面代码均为此项目重要的配置文件,加深印象的同时有助于更好的理解其中的原理;

②在简单实践的基础上,能帮助我们更好的理解SpringMVC的执行原理,强烈推荐跟着开涛学SpringMVC的系列教程(http://jinnianshilongnian.iteye.com/blog/1752171);

③基本配置完成,下一篇会讲解逆向工程-MyBatis Generator、前端框架-bootstrap的简单使用、MyBatis分页工具-pagehelper的使用;

④如果也想试试的话,可在公众号后台回复『SSM』可获取源码及全套视频,也可以直接浏览http://study.163.com/course/courseMain.htm?courseId=1003862031,在线观看。

你可能感兴趣的:(Java笔记,spring,mvc,mybatis,spring)