[英]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.