在Apache Storm拓扑中实现依赖注入的方法有很多种,以下是其中一种常用的解决方案:
public class Config {
private Connection dbConnection;
private APIClient apiClient;
// 省略getter和setter方法
}
public class MyBolt implements IRichBolt {
private Config config;
public MyBolt(Config config) {
this.config = config;
}
// 省略其他方法
}
public class TopologyDriver {
public static void main(String[] args) throws Exception {
// 创建配置类的实例
Config config = new Config();
config.setDbConnection(new Connection());
config.setAPIClient(new APIClient());
// 创建拓扑实例
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("spout", new MySpout(config));
builder.setBolt("bolt", new MyBolt(config)).shuffleGrouping("spout");
// 提交拓扑
StormSubmitter.submitTopology("my-topology", config, builder.createTopology());
}
}
通过这种方式,可以在拓扑的各个组件中使用配置类中的依赖项,实现依赖注入。在实际应用中,可以根据需要对配置类进行扩展和定制,以满足不同组件的依赖注入需求。