Ninja被设计为一个Web框架,但是如果您想利用其出色的依赖注入或配置来运行无Web服务器的控制台应用程序,Ninja v6.3.0 +新增了对ninja.standalone.NinjaConsole的支持,这是主要的切入点.
您的应用程序将像在Jetty这样的Web服务器容器中运行时正常启动,但是不会启动Web服务器并且不会初始化conf.Router . 如果作为标准Ninja Web应用程序运行,则将按通常方式启动所有其他Guice配置和生命周期方法.
您可以直接启动JVM,也可以自定义ninja.standalone.NinjaConsole . 由于它包含主要方法,因此以下将启动基于控制台的Ninja应用程序:
java -cp <classpath-here> ninja.standalone.NinjaConsole
或者,您可以编写自己的main方法并根据需要自定义NinjaConsole :
import ninja.standalone.NinjaConsole; import ninja.utils.NinjaMode; public class MyMain { static public void main(String[] args) throws Exception { NinjaConsole ninja = new NinjaConsole() .ninjaMode(NinjaMode.prod) .start(); // other code (e.g. access guice injector) // ninja.getInjector(); ninja.shutdown(); } }