今天的问题
1)Java 9只用base模块,打包带JRE的可运行文件,有多大?
2)Linux的启动级别有哪些?systemd和init分别是怎么支持的?
3)HTML中的用途?
昨天的问题:
1)dagger是否有内部的可编程API可以使用?
2)Java9 的module-info.java是否可以通过Annoation生成?
3)process.env.NODE_ENV是一个标准么?
dagger是否有内部的可编程API可以使用?
Dagger是一个完全静态的Java和Android编译时IOC框架。 区别于Spring, Dagger的编译时IOC框架,是在编译时通过Annotation Processor生成好相关代码,可以减少运行时错误和反射创建对象的开销。
Dagger最开始是由Square开发的,现在由Google维护。Crazy Bob以前在Google开发了Guice(音蛛丝),虽然没拼过Spring,但产生JSR330。他后来到Square当CTO,又有了Dagger项目。
因为是编译时框架,dagger只有有限的API,复杂逻辑都在Annotation processor里了,所以并没有内部的可编API使用。
示例代码:
生成的代码:
Dagger配合Java 9的Module来限制Bean的可见性,应该还是不错的!
Java9 的module-info.java是否可以通过Annotation生成?
目测是可以通过@ModuleInfo生成module-info.java的。Annotation Processing API,可以生成源文件,支持package-info.java,同理支持module-info.java。
process.env.NODE_ENV是一个标准么?
NODE_ENV是express框架带火的一个环境变量,用于区分是当前运行程序是devlopment还是production,很多框架在用,但并不是标准。