Mybatis与spring的融合

今天给大家分享下自己在搭建mybatis+spring过程中的一些心得,众所周知,mybatis是数据库访问的框架,spring是另一个java的轻量级框架,spring提供强大的基于javaBeans的采用控制反转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组件更加快捷简易。
话不多说,配置如下:


        
            junit
            junit
            4.10
        

        
            org.apache.commons
            commons-lang3
            3.4
        

        
            ch.qos.logback
            logback-access
            1.1.8
        
        
            ch.qos.logback
            logback-classic
            1.1.8
        
        
            ch.qos.logback
            logback-core
            1.1.8
        
        
            org.slf4j
            slf4j-api
            1.7.22
        
        
            com.alibaba
            fastjson
            1.2.4
        
        
            aopalliance
            aopalliance
            1.0
        
        
            commons-logging
            commons-logging
            1.1.1
        
        
            org.mybatis
            mybatis
            3.4.0
        
        
            org.mybatis
            mybatis-spring
            1.3.0
        
        
            mysql
            mysql-connector-java
            5.1.38
        
        
            org.springframework
            spring-aop
            4.1.6.RELEASE
        
        
            org.springframework
            spring-beans
            4.2.5.RELEASE
        
        
            org.springframework
            spring-context
            4.2.5.RELEASE
        
        
            org.springframework
            spring-core
            4.2.6.RELEASE
        
        
            org.springframework
            spring-jdbc
            4.2.6.RELEASE
        
        
            org.springframework
            spring-tx
            4.2.6.RELEASE
        
        
            c3p0
            c3p0
            0.9.1.2
        
        
            commons-collections
            commons-collections
            3.2.2
        
        
            org.apache.directory.studio
          org.apache.commons.codec
            1.3
        
    

以上是配置中所用到的相关的jar包,项目整理的结构如图:
Mybatis与spring的融合_第1张图片
本项目中主要的配置文件是数据库的连接配置、日志记录配置、mybatis.xml(用于设置别名、以及一些plugins)以及spring-mybatis.xml。
jdbc.properties配置如下:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123456
jdbc.maxPoolSize=20
jdbc.minPoolSize=1
jdbc.initialPoolSize=1
jdbc.idleConnectionTestPeriod=1800
jdbc.maxIdleTime=3600
jdbc.checkoutTimeout=10000
jdbc.url=jdbc:mysql://{ip}:{port}/{db-name}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&noAccessToProcedureBodies=true&socketTimeout=100000&connectTimeout=10000

logback.xml主要是用于日志记录的,相关的配置如下:



    
    
    
    
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%file:%line] - %msg%n
        
    
    
    
        
            
            ${LOG_HOME}/dsp-geoedge.log.%d{yyyy-MM-dd}.log
            
            30
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} [%file:%line] - %msg%n
        
        
        
            10MB
        
    
    
    
        
        
    

mybatis.xml中的配置主要是定义一些model中的别名,方便在mapper.xml中使用。相关的配置如下:




    
    
        
    
    
        
    

下面就是本文最为关键的配置文件了,spring-mybatis.xml的配置:



    
    
    
    
        
    

    
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    
    
        
        
        
        
    
    
        
        
    
    
    
        
    

userDao代码:

public interface UserDao {
    User getUser(Long id);
}

IUserService代码:

public interface IUserService {
    User getUser(Long id);
}

User类:

public class User {
    private Long id;
    private String name;
    private String email;
    
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

UserServiceImpl代码:

@Service("userService")
public class UserServiceImpl extends BaseLog implements IUserService{

    @Resource
    private UserDao userDao;

    public User getUser(Long id) {
        return userDao.getUser(id);
    }
}

相关的test类的具体调用代码:

 ApplicationContext context = new ClassPathXmlApplicationContext("spring-mybatis.xml");
    UserServiceImpl service = (UserServiceImpl ) context.getBean("userService");
    User user = service.getUser(3l);
    assertNotNull(user);
    assertEquals("alven",user.getName());

相关配置就已经全部介绍完毕,同时期待大神指点指点,对本文的配置提出优化方案,谢谢大家。
QQ交流群:572930076Mybatis与spring的融合_第2张图片

你可能感兴趣的:(技术分享)