CommandLineRunner tilsidesatte run()-metoden udføres ikke
Problemet :tilsidesat run() metode fra CommandLineRunner klasse bliver ikke udført.
Mappestruktur :
Kode :
Hovedklasse :
package com.diplproj.api; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ApiApplication { public static void main(String[] args) { SpringApplication.run(ApiApplication.class, args); } }
CommandLineRunner-klassen :
package com.diplproj.api.config; import com.diplproj.api.repository.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import java.sql.*; @Component public class DbInitialization implements CommandLineRunner { @Autowired CropYieldRepository cropYieldRepository; @Autowired CultureRepository cultureRepository; @Autowired LocationRepository locationRepository; @Autowired MicroclimateNameRepository microclimateNameRepository; @Autowired MicroclimateValueRepository microclimateValueRepository; @Override public void run(String... args) throws Exception { System.out.println("THIS IS NOT PRINTING"); }
Som det står i println() metode, dette udskriver ikke noget, kun denne opstartslog:
2021-12-12 17:51:09.371 INFO 17832 --- [ restartedMain] com.diplproj.api.ApiApplication : Starting ApiApplication using Java 1.8.0_291 on DESKTOP-6IFP1I4 with PID 17832 2021-12-12 17:51:09.373 INFO 17832 --- [ restartedMain] com.diplproj.api.ApiApplication : No active profile set, falling back to default profiles: default 2021-12-12 17:51:09.452 INFO 17832 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2021-12-12 17:51:09.452 INFO 17832 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2021-12-12 17:51:10.706 INFO 17832 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2021-12-12 17:51:10.835 INFO 17832 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 111 ms. Found 5 JPA repository interfaces. 2021-12-12 17:51:11.819 INFO 17832 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2021-12-12 17:51:11.830 INFO 17832 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2021-12-12 17:51:11.831 INFO 17832 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.55] 2021-12-12 17:51:11.971 INFO 17832 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2021-12-12 17:51:11.971 INFO 17832 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2518 ms 2021-12-12 17:51:12.215 INFO 17832 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2021-12-12 17:51:12.278 INFO 17832 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.1.Final 2021-12-12 17:51:12.468 INFO 17832 --- [ restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2021-12-12 17:51:12.676 INFO 17832 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
Der er et par eksisterende spørgsmål om dette emne på Stackoverflow, men intet hjalp. Er der nogen, der har en idé om, hvad der kan forårsage problemet?
På forhånd tak.
Svar
Det er mærkeligt for at være ærlig. For mig fungerer det uden problemer. Begynder dit forårsprojekt dog med succes?
Started Application in 4.728 seconds (JVM running for 5.885)
Denne besked mangler i din log. CommandLineRunner vil blive udført efter den besked.
En anden ting at bemærke er, at du skal erklære alle afhængighedsinjektionsvariabler som private, men det bør alligevel ikke blokere Commandlinerunner. Også @AutoWired frarådes at bruge, så prøv konstruktorafhængighedsinjektion i stedet for at se, om det forårsager problemet.