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 类了。