- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Spring 的新手,而且在 Java 方面并不是很有经验。我正在尝试通过 Building REST services with Spring spring.io 网站上的教程。我遇到了以下代码段,但我对它的实际作用感到困惑。
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
@Bean
CommandLineRunner init(AccountRepository accountRepository,
BookmarkRepository bookmarkRepository) {
return (evt) -> Arrays.asList(
"jhoeller,dsyer,pwebb,ogierke,rwinch,mfisher,mpollack,jlong".split(","))
.forEach(
a -> {
Account account = accountRepository.save(new Account(a,
"password"));
bookmarkRepository.save(new Bookmark(account,
"http://bookmark.com/1/" + a, "A description"));
bookmarkRepository.save(new Bookmark(account,
"http://bookmark.com/2/" + a, "A description"));
});
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我在 Spring Boot 文档中查找了 CommandLineRunner,它说它是一个接口(interface),如果您想在应用程序启动时执行一些代码,就会实现它。但据我所知,上述代码段中的任何内容都没有实现 CommandLineRunner。另外,我不知道 init() 方法从何而来,也不知道它到底是什么。
另外,我从他们的github repo 下载了完整的代码但我不太确定如何实际运行它。我今天早些时候读到 SpringApplication.run()
使您不必将任何东西部署到 Tomcat 等外部服务。但是当我为 Application 类尝试 java -jar ./jarFileName
时(似乎是一个自然的选择,因为它有 main() ),它给出了一个错误。
如有任何帮助,我们将不胜感激。
最佳答案
回答你的第一个问题:
CommandLineRunner 由 Lambda 表达式实现:
return (evt) -> Arrays.asList(...
第二,init()
方法是一个 Spring Bean 定义,如 @Bean
注释所示。
第三,您正确运行应用程序的方式。 java -jar jarFile
应该运行它。我查看了 git repo 中的模块,其中一些模块缺少使 jars 可执行的 spring-boot-maven-plugin
配置。但是您可以像这样从命令行运行它们:mvn spring-boot:run
关于java - 在这种情况下,CommandLineRunner 做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076591/
总的来说,我对 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
我是一名优秀的程序员,十分优秀!