SSM整合

框架整合思路

springmvc+mybaits的系统架构


image.png

spring将各层进行整合
通过spring管理持久层的mapper(相当于dao接口)
通过spring管理业务层service,service中可以调用mapper接口。
通过spring进行事务控制(原子性)。
通过spring管理表现层Controller,Controller中可以调用service接口。
通过spring管理mapper、service、Controller,因为都是。

所需的jar包

mysql数据库驱动包
mybatis的jar包
mybatis和spring整合包
log4j包
druid数据库连接池包
spring所有jar包

工程结构

SSM整合_第1张图片
image.png

第一步:整合dao层

mybatis和spring整合,通过spring管理mapper接口。
使用mapper的扫描器自动扫描mapper接口在spring中进行注册。

数据库服务器配置文件
在classpath下创建db.properties

#配置信息采取name = value的形式
#1.配置驱动程序
jdbc.driver =com.mysql.jdbc.Driver
#2.配置数据库url
jdbc.url = jdbc:mysql://localhost:3306/coder_school?useUnicode=true&characterEncoding=UTF-8
#3.配置用户名
jdbc.username=root
#4.配置用户密码
jdbc.password=root

日志配置文件
在classpath下创建log4j.properties

# Global logging configuration
#\u751F\u4EA7\u73AF\u5883\u914D\u7F6Einfo   ERROR
log4j.rootLogger=DEBUG,stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

Mybatis配置文件
在classpath下创建mybatis/SqlMapConfig.xml




    
        
    

spring管理SqlSessionFactory、mapper
在classpath下创建applicationContext-dao.xml
配置数据源



    
    
    
    
        
        
        
        

        
        
        
        

        
        

        
        

        
        

        
        
        
        

        
        
        

        
        
    
    
    
    
        
        
        
        
    
    
    
    
        
        
        
    


第二步:整合service层

通过spring管理service接口,使用配置方式将service接口配置在spring配置文件applicationContext-service.xml中。



        

实现事务控制。
Spring管理service bean,并进行事务控制
定义service接口
applicationContext-transaction.xml中使用spring声明式事务控制方法




    
    
        
    
    

测试service,在方法实现上添加 @Transactional注解测试事务是否生效。

package com.neuedu.service.impl;

import java.io.IOException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.neuedu.bean.Commentinfo;
import com.neuedu.mapper.CommentMapper;
import com.neuedu.service.CommentService;
@Service
public class CommentServiceImpl implements CommentService{
    @Autowired
    CommentMapper cm;
    @Override
    @Transactional // 控制事务原子性,要么全成功,要么全失败
    public int addComment(Commentinfo comm) throws IOException {
        int num1 = cm.addComment(comm);
        int num2 = cm.updateCommNum(comm);
        return num1;
    }
}

第三步:整合springmvc

由于springmvc是spring的模块,不需要整合。
springmvc.xml配置文件
在classpath下创建springmvc.xml



     
     
     
     
        
        
     
     
     
     
     
     
     
     
     
           
           
     
     
     
        
             
             
        
     

第四步:web.xml配置文件

配置前端控制器
在web.xml中,添加spring容器监听器,加载spring容器。



    
    
        contextConfigLocation
        classpath:applicationContext-*.xml
    
    
    
        
            org.springframework.web.context.ContextLoaderListener
        
    
   
      404
      /jsp/404.jsp
    
  
    
        springDispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:springmvc.xml
        
        1
    
    
        springDispatcherServlet
        /
    
  
    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        characterEncodingFilter
        /*
    

将Controller层中Service对象及Service层实现类中的Mapper对象,修改为注解自动装配,三大框架整合完毕,编写测试程序验证。

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