【发布时间】:2014-12-23 17:31:05
【问题描述】:
在grails中注入依赖的不同方式有什么区别:
- ABCService abcService
定义 abcService
@Autowired ABCService ABCService
【问题讨论】:
-
def形式在早期版本的 Grails 中总是被推荐,因为开发时重新加载通过替换类加载器来操作 - 如果你给出一个显式类型,你最终会得到“X 不能重新加载时会被强制转换为 X" 错误。我相信最近的 Grails 中基于代理的重新加载器在这方面做得更好,但旧习惯很难改掉(更重要的是,Grails 1.x 时代的大量示例代码和文档库仍然存在并且正在获得由新用户复制)。 -
您能解释一下什么是“基于代理的重新加载器”吗?
-
最新版本的 grails 使用 github.com/spring-projects/spring-loaded,这是一个 Java 代理,允许它在运行时交换修改后的字节码,而无需替换整个类加载器。