gpt4 book ai didi

java - 无法在类中 Autowiring bean

转载 作者:行者123 更新时间:2023-12-01 11:08:50 25 4
gpt4 key购买 nike

下面是我定义 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)中 Autowiring 它

public class TripsExpiryJob implements Job {

@Autowired
TripsExpiryTask tripsExpiryTask;

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

但无法在 TripExpiryJob 类中 Autowiring 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 对象,请确保您正在执行

<上下文:组件扫描>

在配置文件中。

如果您使用配置类而不是 servlet-config.xml 那么您必须这样做

类级别的@ComponentScan

关于java - 无法在类中 Autowiring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32601529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com