<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.2</version>
</dependency>
@Component
public class TaskConstructor implements Task {
private final TaskDependency dependency;
public TaskConstructor(TaskDependency dependency) {
this.dependency = dependency;
}
@Override
public void execute() {
dependency.performAction();
}
}
@Component
public class TaskDependency {
public void performAction() {
}
}
@Configuration
public class TaskFlowConfiguration {
@Bean
public TaskConstructor taskConstructor(TaskDependency dependency) {
return new TaskConstructor(dependency);
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}