Skip to main content

Spring 集成

介绍

在 ioGame 中,对于 Spring 的集成是一件很简单的事,只需要 4 行代码就能完成 Spring 的集成。

Example Source Code

see https://github.com/iohao/ioGameExamples

path : SimpleExample/example/example-for-spring

  • DemoSpringApplication
  • DemoForSpringClient

关键代码说明

启动类

  • code 4,启动 Spring。
  • code 11~14,把业务框架的 action 交给 spring 管理 (关键代码)。

可以看出,ioGame 与 Spring 的集成是简单的,只需 4 行代码。

@SpringBootApplication
public class DemoSpringApplication {
public static void main(String[] args) {
SpringApplication.run(DemoSpringApplication.class, args);

int port = ExternalGlobalConfig.externalPort;
var demoLogicServer = new DemoSpringLogicServer();
NettySimpleHelper.run(port, List.of(demoLogicServer));
}

@Bean
public ActionFactoryBeanForSpring actionFactoryBean() {
return ActionFactoryBeanForSpring.me();
}
}

Action

  • code 1,将 action 类交给 Spring 管理。
  • code 5,由 Spring 注入。
@Component
@AllArgsConstructor
@ActionController(DemoCmdForSpring.cmd)
public class DemoSpringAction {
final DemoSpringService demoSpringService;

@ActionMethod(DemoCmdForSpring.here)
public HelloSpringMessage here(HelloSpringMessage message) {
return demoSpringService.here(message);
}
}

@Component
public class DemoSpringService {
...
}

小结

可以看出,ioGame 与 Spring 的集成是简单的,只需 4 行代码。

@Bean
public ActionFactoryBeanForSpring actionFactoryBean() {
return ActionFactoryBeanForSpring.me();
}

有趣的事

在 ioGame 可以做到混合集成,什么意思呢?

比如本文上面与 Spring 集成了,但并不表示需要将所有的 action 类交给 Spring 来管理才能正常运行。 如果你的 action 没有交给 Spring 来管理,也是能正常使用的,这时就相当于一个普通的 java action 类了。