- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在学习 SpringBoot。我的(微不足道的)问题是我无法从 CommandLineRunner 接口(interface)获取 run() 方法以供 SpringBoot 调用。我正在使用 Java 8、Eclipse Oxygen、Maven,并且正在将我的项目作为“Spring Boot App”运行。代码是:
package com.clarivate.dataviewer;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DvMain implements CommandLineRunner{
static Logger logger = LogManager.getRootLogger();
public static void main(String[] args) {
logger.debug("DS1A in main()");
//SpringApplication.run(DvMain.class, args);
SpringApplication app = new SpringApplication(DvMain.class);
//ConfigurableApplicationContext app = SpringApplication.run(DvMain.class, args);
logger.debug("DS1B in main()");
app.run(args);
}
@Override
public void run(String... args) throws Exception {
// This does not get called
logger.debug("DS4 this line is never printed");
}
}
重写的 run() 方法不会被调用。我试过创建一个单独的类来实现 CommandLineRunner 但同样的问题。控制台跟踪是:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/44/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/44/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
12:58:42.225 [main] DEBUG - DS1A in main()
12:58:42.289 [main] DEBUG - DS1B in main()
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.2.RELEASE)
2018-06-20 12:58:42.614 INFO 16924 --- [ main] com.clarivate.dataviewer.DvMain : Starting DvMain on 44-TPD-A with PID 16924 (C:\workspace_oxyegen\dataviewer\target\classes started by 44 in C:\workspace_oxyegen\dataviewer)
2018-06-20 12:58:42.615 INFO 16924 --- [ main] com.clarivate.dataviewer.DvMain : No active profile set, falling back to default profiles: default
2018-06-20 12:58:42.655 INFO 16924 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6b4a4e18: startup date [Wed Jun 20 12:58:42 BST 2018]; root of context hierarchy
2018-06-20 12:58:43.266 INFO 16924 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2018-06-20 12:58:43.279 INFO 16924 --- [ main] com.clarivate.dataviewer.DvMain : Started DvMain in 0.988 seconds (JVM running for 1.684)
2018-06-20 12:58:43.294 INFO 16924 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6b4a4e18: startup date [Wed Jun 20 12:58:42 BST 2018]; root of context hierarchy
2018-06-20 12:58:43.296 INFO 16924 --- [ Thread-2] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
我确定我犯了一个简单的错误,但我就是看不到它。任何帮助表示赞赏。
最佳答案
将 logging.level.root=debug
添加到您的 application.properties 文件中。
默认情况下,Spring boot 不显示调试级别的日志记录。显示第一条调试消息是因为它们是在您的 Spring 应用程序启动之前调用的。
关于java - 未调用 SpringBoot CommandLineRunner run() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50948334/
总的来说,我对 API 和 Spring 的开发还很陌生。 我正在尝试使用 CommandLineRunner 来填充我的存储库,但它说它找不到我放入参数中的所需 bean。 @SpringBootA
我是 Spring 的新手,而且在 Java 方面并不是很有经验。我正在尝试通过 Building REST services with Spring spring.io 网站上的教程。我遇到了以下代
什么情况下首选CommandLineRunner,而不是在SpringBoot应用的main方法中写额外的代码。 我知道 CommandLineRunner 在 main 完成之前执行。 最佳答案 在
我们如何从 CommandLineRunner 类访问 ApplicationContext。有没有比使用 ApplicationContextAware 更好的更新方法 最佳答案 Autowirin
这是 MVCE:https://github.com/neo4j-examples/movies-java-spring-data-neo4j 我添加到 Person 实体方法: public voi
对我的问题进行编码: @SpringBootApplication public class Application { private static final Logger log
我想用 Spring Boot 开发一个“批处理”。我有一个实现 CommandLineRunner 的类,它需要一个 @Service 类。 代码如下: @SpringBootApplication
我是 Spring 新手,遇到以下异常 Error starting ApplicationContext. To display the conditions report re-run your
在我的 Spring Boot 应用程序中,我尝试在后台执行一些任务。 每隔 30 分钟从一个数据库获取数据并将其存储在另一个数据库中。 创建一个使用 @Async 处理此问题的 CommandLin
我们将 Spring-boot 用于命令行应用程序。我们使用 javax.validation 来验证命令行参数。 现在,如果我们遇到验证错误,我们如何打印友好的错误消息?我们不想显示堆栈跟踪。 当我
我已经使用 spring cloud 任务创建了 spring boot 应用程序,它应该执行一些命令(任务)。每个任务/命令都是短期任务,所有任务都是从命令行启动,做一些简短的 ETL 工作并完成执
在本文中,我们将提供spring boot CommandLineRunner和ApplicationRunner的例子。在spring boot应用程序中,我们可以在spring boot完成其启动
我已经尝试了这个平台上提供的所有答案,但没有奏效。我正在执行这个命令行运行器,但没有调用 run 方法。 感谢您的帮助。 谢谢。 我尝试了以下解决方案,但得到了这个异常。 1st:在你的Bootstr
我在启动的顶级包中有一个主要的 Spring Boot 应用程序,在子包中有不同的 Controller : 即 ca.example.batch.MainBatchApplication ca.ex
在我的 Spring Boot 应用程序中,我使用 CommandLineRunner 创建一个新架构,然后导入一些测试数据。 @Profile("create-schema") @Component
我尝试通过CommandLineRunner接口(interface)将数据设置到数据库。 如果我删除有关银行实例的所有内容并使用空银行列表保存帐户,它会将数据保存到数据库中。 带有 CommandL
我们有一个带有多个 Maven 模块的 Spring MVC 项目。我们将其打包到 EAR 中并将其部署到 WildFly 服务器。 我正在尝试在项目启动时完成一次工作。因此,我想到了CommandL
我正在学习 Spring Boot CommandLineRunner。我有这段代码: @Component public class DataLoader implements CommandLin
我有一个表单中的 springboot 应用程序 src/main/java/example - Application.java - JobConfiguration.java sched
我在一个小的 PoC 中使用 Spring Boot,我正在尝试测试一个 @Bean 实现。我有这段代码: @SpringBootApplication public class Applicatio
我是一名优秀的程序员,十分优秀!