调试Spring配置

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

问题是-我该如何调试Spring如何确定要加载的内容?我可以在Spring上打开日志记录吗?在哪里?

回答:

是的,Spring框架日志记录非常详细,如果你已经在使用日志框架,那么你没有在文章中提及。如果你使用的是log4j,则只需将spring附加程序添加到log4j的配置中(即添加到log4j.xml或log4j.properties),如果你使用的是log4j xml配置,则可以执行以下操作

<category name="org.springframework.beans">

<priority value="debug" />

</category>

要么

<category name="org.springframework">

<priority value="debug" />

</category>

我建议你使用JUnit测试来单独测试此问题,你可以通过将弹簧测试模块与Junit结合使用来进行测试。如果你使用spring test模块,它将为你完成大部分工作,它会根据上下文配置加载上下文文件并启动容器,因此你可以专注于测试业务逻辑。我这里有一个小例子

@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);

}

}

更新

我不建议你更改加载日志的方式,但请在你的开发环境中尝试此操作,将此代码段添加到你的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>

我在本地tomcat上进行了测试,并在应用程序启动时生成了大量日志。我也想改正:使用调试没有信息作为@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>

以上是 调试Spring配置 的全部内容, 来源链接: utcz.com/qa/406683.html

回到顶部