3.3 IOC
IOC(Inversion Of Control),意为控制反转,不是什么技术,而是一种设计思想。Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
在Blade中也集成了这个功能,帮助开发者更好的管理对象。一个Blade工程在启动后就已经将很多对象存储在IOC容器之中了,大部分时候我们只使用这些对象,也会有插件扩展/自定义的一些注入Bean需求。我们在这里不详细概述IOC的实现,感兴趣可以在这里看看。
我们讲解Blade中的IOC使用方式,在框架中我们使用注解来进行依赖注入的过程,操作非常简单。
举个例子
@Bean
public class UserService{
public String sayHello(){
return "Hello Blade.";
}
}
这时候想在路由/控制器中使用这个 UserService
只需:
@Path
public class IndexRoute(){
@Inject
private UserService userService;
@GetRoute("sayHello")
public void index(Response response){
response.text(userService.sayHello());
}
}
非常简单。
有时候我们加载一些Bean是有顺序的,在Blade中提供一个 @Order
注解帮你完成顺序加载Bean,一般情况下用不到。