当我尝试运行我的项目时,我在标题中发现了错误。我已经阅读了有关此错误的其他线程,并找到了消除错误的解决方案,但杀死了我的所有日志记录。
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)
和
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
Run Code Online (Sandbox Code Playgroud)
两者都有助于消除错误并终止我的日志记录。我宁愿能够保留我的 Spring-Boot 日志记录并解决此问题,但一直无法找到解决方案。有没有办法可以保留当前的日志记录并解决此依赖性问题?追踪违规模块的最佳方法是什么?
完整的错误是:
线程“main”中的异常 java.lang.IllegalArgumentException: LoggerFactory 不是 Logback LoggerContext 但 Logback 在类路径上。删除 Logback 或竞争实现(类 org.slf4j.impl.Log4jLoggerFactory 从文件加载:/C:/Users/me/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6 .4.jar)。如果您使用的是 WebLogic,则需要在 WEB-INF/weblogic.xml 中的首选应用程序包中添加“org.slf4j”:org.slf4j.impl.Log4jLoggerFactory
编辑:pom:
<dependencies>
<dependency>
<groupId>com.marklogic</groupId>
<artifactId>mlcp</artifactId>
<version>8.0-4</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.7.4</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>commons-modeler</groupId>
<artifactId>commons-modeler</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId> …Run Code Online (Sandbox Code Playgroud) 我已经使用 Spring boot 一段时间了,在我看到的每个示例中,数据源总是在 application.properties 中配置,有点像这样:
# DataSource configuration
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/abcdef
spring.datasource.username=******
spring.datasource.password=******
Run Code Online (Sandbox Code Playgroud)
但是,最近我一直在尝试集成 Spring Social,我看到的示例在 java 中的配置文件中配置它,如下所示:
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("db.driver"));
dataSource.setUrl(env.getProperty("db.url"));
dataSource.setUsername(env.getProperty("db.username"));
dataSource.setPassword(env.getProperty("db.password"));
return dataSource;
}
Run Code Online (Sandbox Code Playgroud)
这允许数据源对象稍后被注入或自动连接到社交配置中,例如这里看到的。
我的问题是,我是否需要像这样配置一个数据源 bean 以便以后能够注入数据源,还是 Spring-boot 会为我处理?