1
我剛剛開始使用DI和Spring。我有這兩種成分(僞)帶註釋的spring depenency注入
@Component
public class AuthHandlerImpl extends ChannelInboundHandlerAdapter implements AuthHandler {
@Autowired
AuthService authService;
@Override
channelRead(ChannelHandlerContext ctx, Object msg) {
authService.authenticate(msg); // want to pass ctx to constructor of authService
}
}
@Component
public class AuthServiceImpl implements AuthService {
private CustomerService customerService;
private ChannelHandlerContext ctx;
@Autowired
public AuthServiceImpl(CustomerService customerService, ChannelHandlerContext ctx) {
this.customerService = customerService;
this.ctx = ctx;
}
}
我試圖做到的,是有AuthService注射構造函數的參數,其中的構造函數的參數之一是ChannelHandlerContext從ChannelInboundHandlerAdapter類。不知道這是否可能。
所以如果ChannelHandlerContext是第三方框架類型,那還有可能嗎?有沒有可能與註釋? – Crystal
您可以定義一個\ @Configuration類。在內部,您需要創建一個具有特定註釋(\ @Bean)的方法,該方法負責返回您的第三方組件。 \ @Configuration 類MyConfigurationClass { \ @Bean 公共getChannelHandlerContext(){ 返回新ChannelHandlerConext(); //現在,通過\ @Bean註釋,ChannelHandlerContext是一個spring bean。 } } –