SSM整合

1、通过maven管理项目,下面为依赖代码:
    
      junit
      junit
      4.12
      test
    
    
    
        org.mybatis
        mybatis-spring
        1.3.1
    
    
    
        org.mybatis
        mybatis
        3.4.2
    
    
    
        mysql
        mysql-connector-java
        5.1.40
    
    
    
        org.springframework
        spring-context
        4.3.7.RELEASE
    
    
    
        org.springframework
        spring-webmvc
        4.3.7.RELEASE
    
    
    
        org.springframework
        spring-orm
        4.3.7.RELEASE
    
    
    
        org.springframework
        spring-test
        4.3.7.RELEASE
    
    
    
        com.fasterxml.jackson.core
        jackson-databind
        2.8.7
    
    
    
        javax.servlet
        javax.servlet-api
        3.1.0
        provided
    
    
    
        javax.servlet.jsp
        javax.servlet.jsp-api
        2.3.1
        provided
    
    
    
        javax.servlet
        jstl
        1.2
    
    
    
        org.apache.commons
        commons-dbcp2
        2.1.1
    
    
    
    
        org.hibernate
        hibernate-core
        5.2.8.Final
    
    
    
    
        org.aspectj
        aspectjrt
        1.8.10
    
    
    
        org.aspectj
        aspectjweaver
        1.8.10
    

这里面包含了mybatis、spring、springMVC的基本依赖包,还有MySQL的依赖包,同时还加上了spring的orm和test包,还有Jackson的databind夹包,其中的servlet和servlet-jsp由应用服务器提供,同时还加上了aspectj的有关自定义切面的夹包和hibernate的核心包。在实际开发中最好根据项目所需要的夹包增删。

2、配置web.xml文件




    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

    
    
        env
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
        
            forceEncoding
            true
        
    

    
        env
        /*
    

    
    
        dispatcher
        org.springframework.web.servlet.DispatcherServlet
    

    
        dispatcher
        /
    

    
    
        org.springframework.web.context.ContextLoaderListener
    


这里的web.xml文件是这个项目的配置文件,我们可以在这里配置一些必要的代码:

  • 1、前端控制器(通过servlet配置)
  • 2、spring上下文的IOC容器的监听器
  • 3、上下文参数,一般都配置在靠前端的位置,最好在配置开头,参数名为“contextConfigLocation”,最好别改。
  • 4、编码过滤器:通过这个过滤器可以解决乱码的问题,如果有时只设定了encoding为utf-8而没有达到效果,还可以加上一个init-param:forceEncoding,设为true就可以了,这个参数表示强制使用上面配置的utf-8的格式。
3、applicationContext.xml文件的配置

这个文件是springIOC容器的配置文件,这是一个十分重要的配置文件,我们要在这里面配置需要交给IOC容器管理的对象bean,比如数据源DataSource,mybatis的会话工厂sqlSessionFactory,以及会话sqlSessionTemplate,还有事务管理器transactionManager。

具体代码如下:




    
    
    
    

    
        
        
        
        
    

    
        
        
        
        
        
    
    
    
        
    

    
        
    

    
    

其中还加上了打注解的配置,aop自动生成代理以及扫描指定路径下注解文件。

4、dispatcher.xml配置文件

dispatcher是我们在前面的web.xml文件中配置的前端控制器,所以顾名思义,这个配置文件就是在配置前端控制器的具体文件,比如视图解析器,消息转换器,以及对静态资源的处理等。

具体代码如下:




    
    
    
    
    
    
    
    
    
        
        
        
    
    
    
    
        
            
            
            
        
    
    

5、mybatis-config.xml文件

这个配置文件是mybatis的配置文件,在SSM的整合中可以忽略不写,因为里面的一些基本的配置文件都可以交给IOC容器管理,即可以在applicationContext.xml文件中配置,比如数据源,会话工厂,事务管理器等全局属性,这些配置最好是交给springIOC容器管理,这样可以更好的自动分配会话资源,以及事务的管理,合理化运用。

代码如下:




    
        
        
        
    
    
        
            
            
                
                
                
                
            
        
    
    
        
    

这里只处理了别名和配置环境以及映射器,还有其他很多的配置没有加上,如果只是简单的这些配置就不用写这个文件,但是想要写一些setting的全局参数配置就需要保留这个文件,此中进行配置代码的书写。

6、具体结构图:
SSM整合_第1张图片
具体结构图

这就是通过maven管理的一个简单的SSM整合的项目结构图,持久层运用的dao的理念,使用dao和mapper的配合使用。

使用mapper需要这个bean:

SSM整合_第2张图片
mapperBean

在一些简单的开发中,可以直接使用mapper代替dao层,就用mapper直接进行业务处理,这样的好处是可以减少代码量。但是有一些弊端,比如有时操作数据库进行增删改后的返回值并不是我们所希望的类型,所以建议在稍微复杂的项目中都保留dao层,在dao和mapper中间进行类型的转换,从而获取我们所需要的值。

mapper的具体结构
mapper具体结构图

如图所示,每一个实体对象都应该有一个映射器对象,同时还应该有对应的配置文件。具体代码如下:简单配置,以作示范

  • BookMapper.java
package com.qfedu.ssm.mapper;

import java.util.List;

import com.qfedu.ssm.entity.Book;

public interface BookMapper {
    
    public List findByTypeId(int id);

}
  • BookMapper.xml



    

    


最后提一下,这里面都是基于接口,面向对象进行编程,实现解耦和,同时可延长项目的生命周期,面向接口编程对以后维护或者升级拓展项目时提供了可能性。

好了,一个简单的SSM整合框架完成了,以上仅是本人的微薄的见解,如有错误,请指正。

你可能感兴趣的:(SSM整合)