是否可以在@Component类中的3个或更多bean之间进行优先级排序?

时间:2018-07-17 11:56:45

标签: java spring spring-mvc spring-boot

为澄清起见,我有一个@Component类,其中包含两个有线bean。我想优先处理每个bean。那有可能吗?

@Component
public class SecureMessages {

    @Autowired // load second
    private ObjectMapper objectMapper;

    @Autowired // load first
    private LocalCacheServiceImpl LocalCacheServiceImpl;
}

根据上述代码,我想在调用此组件类时首先为本地缓存创建一个bean,然后可以创建其余的bean。

1 个答案:

答案 0 :(得分:1)

您可以向组件添加@Order批注。较低的订单值具有较高的优先级。您可以详细了解here

@Bean
@Order(2)
public ObjectMapper getObjectMapper(){
    return new ObjectMapper();
}

@Bean
@Order(1)
public LocalCacheServiceImpl getLocalCacheServiceImpl(){
    return new LocalCacheServiceImpl();
}

@DependsOn也许 也适合您。这取决于您为什么要订购豆子。您可以阅读有关here

的信息