如何编写starter
By:wendal<wendal1985@gmail.com>

首先的首先

Top

如果你写了一个很棒的starter,恳请告知我们,报个issue即可,码云或者github均可

https://gitee.com/nutz/nutzboot

https://github.com/nutzam/nutzboot

基本结构

Top

与NB项目一样, starter也是maven项目

- src
	- main
		- java
			- net
				- wendal
					- time
						- TimeStarter.java
		- resources
			- META-INF
				- nutz
					- org.nutz.boot.starter.NbStarter // 这是一个文本文件

org.nutz.boot.starter.NbStarter文件的内容,就是一行一个类全名,可以是无数个.

net.wendal.time.TimeStarter

Starter类怎么写?

Top

首先,她是public的,非抽象的

public class TimeStarter {
}

然后,她通常需要读取一些环境数据,依赖ioc注入

@IocBean
public class TimeStarter {
	@Inject("refer:$ioc")
	protect Ioc ioc; // 获取ioc容器
	@Inject
	protect PropertiesProxy conf; // 获取配置信息
	@Inject
	protect AppContext appContext; // 获取全局上下文
}

以上是能注入的全部东西了,然而appContext对象内还有几个有用的实例.

获取上述对象后,你可以做到:

那,我这个starter对外提供什么呢?

NB的生命周期

Top