作为程序员,在开发过程中,经常遇到这样的事情。随着开发的进展,项目越来越庞大,尤其是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
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));
}
}
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));
}
}
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/277172,如需转载请自行联系原作者