簡體   English   中英

無法自動連接類中的Bean

[英]Unable to autowire bean in a class

下面是配置類,在其中定義了bean。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.abc.billing.web.controllers", "com.abc.billing.core.services" })
@Import(PersistenceConfig.class)
public class WebAppConfig extends WebMvcConfigurerAdapter {

  @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(new MappingJackson2HttpMessageConverter());
  }

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new BusinessUnitInterceptor());
  }

  @Bean
  public TripsExpiryTask tripsExpiryTask() {
    return new TripsExpiryTask();
  }

  @Bean
  public TripsExpiryJob tripsExpiryJob() {
    return new TripsExpiryJob();
  }

  @Bean
  public TripsExpiryJobTrigger tripsExpiryJobTrigger() throws SchedulerException {
    return new TripsExpiryJobTrigger();
  }

}

為了訪問bean,我在另一個類(TripExpiryJob)中自動裝配了它

public class TripsExpiryJob implements Job {

  @Autowired
  TripsExpiryTask tripsExpiryTask;

  @Override
  public void execute(JobExecutionContext arg0) throws JobExecutionException {
    tripsExpiryTask.execute();
  }
}

但是無法自動連接TripExpiryJob類中的TripExpiryTask。

更新:

public class TripsExpiryTask {

    @Autowired
    BillableTripRepository btr;

    @Autowired
    BillableRequestRepository brr;

    public TripsExpiryTask() {
        System.out.println("Trips Expiry Job!");
    }

    private void updateProbableExpiredTrips(List<PBillableTrip> expiredTrips) {
    //Some Code
    }

    private void expireTrips() {
        // Some Code
    }

    public void execute() {
        expireTrips();
    }
}

要初始化@Autowired對象,請確保您正在做

<context:component-scan>

在配置文件中。

如果使用Configuration類而不是servlet-config.xml,則必須執行

@ComponentScan在類級別

檢查要自動裝配的對象是否在xml文件中創建。

<bean id =“ object” class =“課程的完全限定名稱” />

或自動初始化使用

<context:annotation-config />

問題似乎出在WebAppConfig類中。 我為工作做了一個單獨的配置類,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM