在 Spring 中注入需要子类化框架类型的具体类

水晶

我有一个从 Netty 框架扩展类型的具体类型:

public class ServerHandlerImpl extends ChannelInboundHandlerAdapter implements ServerHandler

ChannelInboundHandlerAdapter 实现 ChannelInboundHandler

当我创建ServerHandlerImpl 时,我想使用Spring 来注入它。我知道我可以使用具体类型。但我不确定是否有办法从接口注入。

ServerHandler 接口现在是空的:

public interface ServerHandler {
}

当我尝试从接口注入类型时,

@Autowired
private ServerHandler serverHandler;

@Override
protected void initChannel(Channel ch) throws Exception {
    pipeline.addLast(serverHandler);  
}

它不会编译,因为 addLast 正在寻找一种实现 ChannelInboundHandler 的类型,我的具体类型这样做了,但接口没有。人们在这些情况下会做什么?

本杰明·东泽

好吧,这与 Spring 无关,而是与 Java 和 OO 编程有关。

您声明了一个类型为 ServerHandler 的对象,并尝试将它传递给一个方法 pipeline.addLast,我猜它正在等待一个类型为 io.netty.channel.ChannelHandler 的对象。ServerHandler 不是 ChannelHandler 的子级,因此编译器不能接受它不能保证它将在运行时收到的真实实例是 ChannelHandler 的子级。

这是简单的 OO 概念。在这里我不明白您为什么要将您的字段声明为 ServerHandler。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用依赖注入在Spring中注入资源类实例

来自分类Dev

无法在Spring Webapp中注入Activiti框架服务

来自分类Dev

如何在Spring 3.0中注入地图类型对象

来自分类Dev

如何在Spring 3.0中注入地图类型对象

来自分类Dev

如何在Spring Controller中注入类的对象?

来自分类Dev

Spring-在Java配置类中注入构造函数参数

来自分类Dev

Spring-在Java配置类中注入构造函数参数

来自分类Dev

Spring 无法在实现 Quartz Job 的类中注入 Bean

来自分类Dev

如何在Spring JPA中注入CrudRepository?

来自分类Dev

如何在Spring Service中注入嘲讽

来自分类Dev

在groovy bean中注入Spring bean

来自分类Dev

在Java 8函数中注入Spring bean

来自分类Dev

在Spring中注入Value始终为null

来自分类Dev

在支持bean中注入Spring服务

来自分类Dev

无法在Spring的Junit测试中注入DAO

来自分类Dev

在JSF组件中注入spring bean

来自分类Dev

在支持bean中注入Spring服务

来自分类Dev

Spring:在服务中注入数据对象

来自分类Dev

Spring xml与Java Config中的类类型注入

来自分类Dev

Mapstruct-如何在生成的Mapper类中注入spring依赖项

来自分类Dev

如何使用Kotlin在Spring Test类中注入服务组件?

来自分类Dev

Spring - 在抽象类级别的自动装配字段中注入适当的服务实现

来自分类Dev

将超类传递到需要子类的方法中

来自分类Dev

Spring MVC如何解决子类注入

来自分类Dev

Play2框架的Spring属性注入

来自分类Dev

Spring Data REST-排除子类型

来自分类Dev

将Spring存储库注入Spring @Configuration类

来自分类Dev

如何在Spring上下文中注入模拟

来自分类Dev

如何覆盖由@Value在Spring中注入的字段值?

Related 相关文章

热门标签

归档