我还不确定我是否走错了路。Micronaut 入门页面上有一个 V8 引擎和注入车辆的示例。
- 定义 Beans(常用的 Engine 接口示例)
考虑到这个例子。使用 Java 使用 Micronaut 实现“模型 A”的最直接方法是什么?如果没有直接的方法,那么与 Micronaut 最接近的放手方法是什么?
我用这样一个例子对香草场注入的简单看法是这样(使用Java),我将它标记为“模型A”......
A型
import io.micronaut.context.*
public class MyApp { // (A)
@Inject
Vehicle vehicle;
public void runApp( String... args ){
println( vehicle.start() )
}
public static main( String... args ){
// whatever set-up and steps need // (B)
// for auto-inject / auto-wiring.
MyApp body = new MyApp( args );
body.runApp(); // (C)
}
}
注释处理器使用的地方提供了@Singleton
Vehicle
此示例中的实例。或者在非singleton-s的情况下创建一个新的实例。
无论哪种方式,该过程的结果都是我不需要编写代码来“实例化”代码或找到一个工厂来明确地这样做。
该示例本身继续演示我将标记为“模型 B”的方法(使用 Groovy)......
B型
import io.micronaut.context.*
...
Vehicle vehicle = BeanContext.run().getBean(Vehicle)
println( vehicle.start() )
事实上,这不仅仅是写作:
Vehicle vehicle = new Vehicle();
// OR
Vehicle vehicle = Vehicle.getInstance();
对于某些库,您需要初始化范围或上下文,我明白了。问题归结为我必须做什么才能注入 Vehicle,如我的代码所示。
我做了一个@Singleton
并尝试到@Inject
该领域。引用为 NULL。然后我做了一个@Provider
并设置了一个断点。那不叫。
- 我可以做“模型A”吗?
- 如果是,需要做什么?
我浏览了很多做伟大事情的例子。我也很想涉足那些花哨的东西。现在我在地下室寻找通往一楼的路。非常感谢您的指导。