小编use*_*485的帖子

如何在弹簧靴中有条件地自动装配?

我创建了一个调度程序类

public class TestSchedulderNew {

@Scheduled(fixedDelay = 3000)
public void fixedRateJob1() {
System.out.println("Job 1 running");
}

@Scheduled(fixedDelay = 3000)
public void fixedRateJob2() {
System.out.println("Job 2 running");
}
}
Run Code Online (Sandbox Code Playgroud)

在配置中,我放置了 @ConditionalOnProperty 注释以在有条件的情况下启用此功能。

 @Bean
@ConditionalOnProperty(value = "jobs.enabled")
public TestSchedulderNew testSchedulderNew() {
return new TestSchedulderNew();
}
Run Code Online (Sandbox Code Playgroud)

现在在控制器中,我创建了“stopScheduler”方法来停止那些调度程序,在这个控制器中我有自动装配的 TestSchedulderNew 类

 @RestController
 @RequestMapping("/api")
 public class TestCont {

private static final String SCHEDULED_TASKS = "testSchedulderNew";

 @Autowired
 private ScheduledAnnotationBeanPostProcessor postProcessor;    /]

 @Autowired
 private TestSchedulderNew testSchedulderNew;


 @GetMapping(value = "/stopScheduler")
 public String stopSchedule(){
  postProcessor.postProcessBeforeDestruction(testSchedulderNew, 
   SCHEDULED_TASKS);
  return "OK";
  }
 } …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection autowired spring-boot

8
推荐指数
1
解决办法
8678
查看次数

如何在Spring Boot中基于​​配置文件动态注入依赖项

假设我有以下设置,一个接口有一个方法“ addTaxTrans()”

 public interface TaxTransInterface {

 Response<Map<String, Object>> addTaxTrans(Long sessionId, TaxMap taxMap);

 }
Run Code Online (Sandbox Code Playgroud)

我用此接口实现了两个类。

客户1的首次抵押

@component
public class Client1TaxImpl implements TaxTransInterface{

 @Override
 public Response<Map<String, Object>> addTaxTrans(Long sessionId,
  TaxMap taxMap) {

 // Common code + client 1 customization code
  }
 }
Run Code Online (Sandbox Code Playgroud)

客户端2的第二种实现

 @component
 public class Client2TaxImpl implements TaxTransInterface{

 @Override
 public Response<Map<String, Object>> addTaxTrans(Long sessionId,
 TaxMap taxMap) {

  // Common code + Client 2 customization code
   }
 }
Run Code Online (Sandbox Code Playgroud)

下面是服务的实现,因此这里我自动连接TaxTransInterface并调用addTaxtrans方法。

   @Service.
  public class TaxSerImpl implements TaxSer {

  @Autowired
  private TaxTransInterface taxTransInterface;

   @Override
  @Transactional(rollbackFor …
Run Code Online (Sandbox Code Playgroud)

java dependency-injection autowired spring-boot

3
推荐指数
1
解决办法
62
查看次数