在j2se和j2ee中,log4j和spring的配置文件,默认都是在src也就是classpath下面.但程序要发布的时候,通常src下面的文件会打包.因此修改配置文件每次都要打包一次,很不方便,有没有办法,把配置文件防在包外面呢?如果你有这个需求,那么本文就非常适合你.^-^
1)spring
配置文件applicationContext.xml的位置,把他放在project下面以后,我们需要通过下面的方法来获取,而不是原先的ClassPathXmlApplicationContext("applicationContext.xml");了
ApplicationContext context = new FileSystemXmlApplicationContext(System.getProperty("user.dir") + "\\applicationContext.xml");
其他的都一样^-^
2)log4j
配置文件log4j.propeties,他的配置也可以放在project下面,但需要手动设置起路径.一般都把他放在main方法的第一行,代码如下:
PropertyConfigurator.configure(System.getProperty("user.dir") + "\\log4j.properties");
下面是我的J2SE项目结构
总结:在J2EE中使用,配置方法相比在J2SE下更强大,不需要写代码,就能实现LOG4J的配置通过Spring会比较灵活,而spring的文件配置路径,仍然需要使用
1)System.getProperty("user.dir")2)或者String url = this.getClass().getClassLoader().getResource("/").toString(); url = url.substring(0, url.length() - 8);
1 楼 ted_yuen 2011-03-10
请问个问题:
applicationContext.xml中配置自动搜索annotation的搜索路径该怎么写呢。我按原来的写法,找不到包。。。
<context:component-scan base-package="com.xxx.xxx" />
applicationContext.xml中配置自动搜索annotation的搜索路径该怎么写呢。我按原来的写法,找不到包。。。