Spring+ibatis 非web项目相关配置

来源:互联网 发布:人类起源海洋 知乎 编辑:程序博客网 时间:2024/05/29 16:16
         作为程序员,在开发过程中,经常遇到这样的事情。随着开发的进展,项目越来越庞大,尤其是web项目,一般集成的东西特别多。如果机器配置的好点,还好点,如果机器不好的话,老是重启服务,后果很难想象啊------尤其对于我这样初出茅庐的程序员,很难做到一次性代码就写的很完美。于是,就有了这样的结果,服务启动关了起,起了又关,严重影响开发进度,严重影响了ME的心情。
 
         我思考了一下,是不是有个缓解的办法。系统启动缓慢的原因,就是ibatis加载的配置文件过多,和spring 容器相关的bean IOC 相关配置文件的读取等。 假设,如果,我把spring +ibatis 单独抽取出来,成为一个很小的java项目,注意不是web项目。(因为如果是web项目的话,从容器取中bean,也不太方便)。 当在小测试项目中,然后 模拟业务逻辑,直接 在main 函数里就可以测试了。而不用每次都需要发起web 请求,转一个大圈了。最后,验证通过,再把通过的dao、service 移到开发的项目中。
 
不好的地方,就是在最后,就是最后的复制工作。所以,最好做到web项目 和测试项目包路径完全一致,这样 ctl+c ctl+v 就OK了。
 
 
遇到最后的问题。就是ibatis 不输出sql. 在网上搜了许多方案,单都没有解决。网上的相关解决方案都是对于web项目的。工作只做了一半,并不完全。
 
配置步骤如下:
1.配置log4j.properties
 
log4j.rootLogger=ERROR, file, myConsole
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=d://info.log    
log4j.appender.file.Append=true
log4j.appender.file.Threshold=INFO
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd, HH:mm:ss } : %p [%t] %m%n        

log4j.appender.myConsole=org.apache.log4j.ConsoleAppender
log4j.appender.myConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.myConsole.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n
log4j.appender.myConsole.threshold=INFO


log4j.logger.java.sql.Connection = DEBUG    
log4j.logger.java.sql.Statement = DEBUG    
log4j.logger.java.sql.PreparedStatement = DEBUG, stdout        
log4j.logger.java.sql.ResultSet = DEBUG    
    
log4j.appender.stdout=org.apache.log4j.ConsoleAppender            
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout        
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} :%m%n        
 
2.在测试java文件中,添加一行代码
package com.lvbang.client;

import org.apache.log4j.PropertyConfigurator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.lvbang.service.storage.bean.Us_cm_backExtendBean;
import com.lvbang.service.storage.dao.Us_cm_backDao;

public class Test {

  /**
    * @param args
    */

  public staticvoid main(String[] args) {
    // TODO Auto-generated method stub
    PropertyConfigurator.configure(Test.class.getClassLoader().getResource("log4j.properties"));    
    ApplicationContext factory = new ClassPathXmlApplicationContext(
    "applicationContext-*.xml");
    Us_cm_backDao dao = (Us_cm_backDao) factory.getBean("us_cm_backDao");
    
    Us_cm_backExtendBean bean = new Us_cm_backExtendBean();
    bean.setFlag("11");
    bean.setOutsto_id(112);
    
    
    System.out.println(dao.save(bean));
  }

}

本文出自 “简单” 博客,请务必保留此出处http://randy2009.blog.51cto.com/764602/277172

原创粉丝点击