作为程序员,在开发过程中,经常遇到这样的事情。随着开发的进展,项目越来越庞大,尤其是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  static  void 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)); 
  }