debuggingSpringconfiguration

我正在研究使用Spring和Hibernate的Java应用程序,并在Websphere上运行。 我遇到了一个问题,我希望Spring将Dao加载到我的对象中,但由于某种原因,这并没有发生。 (以同样方式指定的另一个Dao加载正常。)

问题是 – 我怎样才能debuggingSpring如何决定如何加载? 我可以打开日志logging的spring,在哪里?

是的,Spring框架的日志logging非常详细,如果你已经在使用日志框架,你没有在你的文章中提到过。 如果您使用的是log4j,那么只需在log4jconfiguration文件中添加spring appenders即可(例如log4j.xml或log4j.properties),如果您使用的是log4j xmlconfiguration,您可以做一些这样的事情

<category name="org.springframework.beans"> <priority value="debug" /> </category> 

要么

 <category name="org.springframework"> <priority value="debug" /> </category> 

我build议你使用JUnittesting隔离地testing这个问题,你可以使用springtesting模块和Junit一起来完成这个任务。 如果你使用springtesting模块,它会为你做大量的工作,它会根据你的上下文configuration加载上下文文件,并启动容器,所以你可以专注于testing你的业务逻辑。 我在这里有一个小例子

 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:springContext.xml"}) @Transactional public class SpringDAOTest { @Autowired private SpringDAO dao; @Autowired private ApplicationContext appContext; @Test public void checkConfig() { AnySpringBean bean = appContext.getBean(AnySpringBean.class); Assert.assertNotNull(bean); } } 

UPDATE

我不build议你改变你的加载日志的方式,但在你的开发环境中试试这个,把这个代码片段添加到你的web.xml文件

 <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> 

更新lo4jconfiguration文件


我在我的本地tomcat上testing了它,它在应用程序启动时产生了大量的日志logging。 我也想做一个修正使用debugging信息作为@Rayan斯图尔特提到。

 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="debug" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{HH:mm:ss} %p [%t]:%c{3}.%M()%L - %m%n" /> </layout> </appender> <appender name="springAppender" class="org.apache.log4j.RollingFileAppender"> <param name="file" value="C:/tomcatLogs/webApp/spring-details.log" /> <param name="append" value="true" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{MM/dd/yyyy HH:mm:ss} [%t]:%c{5}.%M()%L %m%n" /> </layout> </appender> <category name="org.springframework"> <priority value="debug" /> </category> <category name="org.springframework.beans"> <priority value="debug" /> </category> <category name="org.springframework.security"> <priority value="debug" /> </category> <category name="org.springframework.beans.CachedIntrospectionResults"> <priority value="debug" /> </category> <category name="org.springframework.jdbc.core"> <priority value="debug" /> </category> <category name="org.springframework.transaction.support.TransactionSynchronizationManager"> <priority value="debug" /> </category> <root> <priority value="debug" /> <appender-ref ref="springAppender" /> <!-- <appender-ref ref="STDOUT"/> --> </root> </log4j:configuration>