Java Tomcat8 Springboot未读取application.properties
我第一次在一个个人项目上使用java spring,但似乎无法使application.properties中的任何属性正常工作。我将其简化为这个测试用例,但它似乎什么都没有做: 应用程序属性Java Tomcat8 Springboot未读取application.properties,java,spring,logging,application.properties,Java,Spring,Logging,Application.properties,我第一次在一个个人项目上使用java spring,但似乎无法使application.properties中的任何属性正常工作。我将其简化为这个测试用例,但它似乎什么都没有做: 应用程序属性 logging.level.root=WARN AppInitalizer.java: import javax.servlet.Filter; import org.springframework.boot.autoconfigure.SpringBootApplication; import or
logging.level.root=WARN
AppInitalizer.java:
import javax.servlet.Filter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SpringBootApplication
@ConfigurationProperties
public class AppInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
private static final Logger log = LoggerFactory.getLogger(AppInitializer.class);
@Override
protected Class<?>[] getRootConfigClasses() {
log.debug("This is a debug message");
log.error("This is an error message");
return new Class[] {};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {};
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Filter[] getServletFilters() {
return new Filter[] {};
}
}
这两个文件部署到类路径根目录下的同一目录中
应该只显示第二条日志消息,但我无法处理第一条
相关ivy.xml配置:
<!-- Spring Framework -->
<dependency org="org.springframework"
name="spring-webmvc" rev="5.0.9.RELEASE"/>
<!-- Logging -->
<dependency org="log4j" name="log4j" rev="1.2.17"/>
似乎没有任何属性源是从类路径加载的,我在类路径中有application.properties
foo.properties文件应放在/src/main/resources下,以便在运行时在类路径上可用。请在apache.commons.logging上使用slf4j.Logger使用slf4j,而不是
org.apache.commons.logging.LogFactory
:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Logger log = LoggerFactory.getLogger(this.getClass());
或静态记录器:
private static final Logger log = LoggerFactory.getLogger(AppInitializer.class);
我建议您直接运行
AppInitializer
,而无需创建WAR并部署它。SpringBoot附带集成的Tomcat/Jetty,可以随时使用。这样,你就可以更容易地调试你的问题。你能举个例子说明如何调试吗?我没有使用IDE、maven或gradle。文档说我可以从一个jar运行它,但它没有说jar的布局应该是什么。@user2752635你能像pom那样显示更多相关的日志配置吗?例如,我没有使用maven。我有一个ivy.xml文件,ant用它来下载依赖项。你想看吗?我添加了ivy.xml的引导和日志部分
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final Logger log = LoggerFactory.getLogger(this.getClass());
private static final Logger log = LoggerFactory.getLogger(AppInitializer.class);