-
在Guice中的createChildInjector里绑定AOP失败5
不知道为什么在createChildInjector里面bindInterceptor后运行没有效果,但是如果里面同样bind一次就没问,很奇怪大家有没有遇到过?@Singleton public class TestGuice { @Inject private InnerClass in; public InnerClass getIn() { return in; } static public class InnerClass { public InnerClass() { System.out.println("newInner"); } public void printStr() { System.out.println("p"); } } static class TestInterceptor implements MethodInterceptor { public Object invoke(MethodInvocation invocation) throws Throwable { String methodName = invocation.getMethod().getName(); long startTime = System.nanoTime(); System.out.println(String.format("before method[%s] at %s", methodName, startTime)); Object ret = null; try { ret = invocation.proceed(); } finally { long endTime = System.nanoTime(); System.out.println(String.format(" after method[%s] at %s, cost(ns):%d", methodName, endTime, (endTime - startTime))); } return ret; } } public static void main(String[] args) { Injector createInjector = Guice.createInjector(); createInjector = createInjector.createChildInjector(new AbstractModule() { protected void configure() { bind(InnerClass.class); bindInterceptor(Matchers.inSubpackage("com.zyt.guice"), Matchers.any(), new TestInterceptor()); } }); TestGuice guice = createInjector.getInstance(TestGuice.class); guice.getIn().printStr(); guice = createInjector.getInstance(TestGuice.class); guice.getIn().printStr(); } }
2014年12月23日 12:26
目前还没有答案
相关推荐
sisu-guice-3.1.3-no_aop.jar
guice-2.0-no_aop.jar
`guice-2.0-no_aop.jar`是Guice的一个版本,不包含Aspect Oriented Programming(AOP)支持,这可能是因为在Android环境中,AOP的使用可能会增加复杂性和性能开销。 接下来,我们来看RoboGuice。RoboGuice是Guice的...
5. **实战案例**: 提供实际的代码示例,演示如何在项目中应用 Guice。 通过阅读文档和运行示例,开发者可以快速理解和掌握 Guice 的使用方法,将其有效地应用于实际项目中,提升代码质量。 **总结** Guice 是一个...
其中将`Service`接口绑定到了`ServiceImpl`实现,并且指定了单例作用域(`Scopes.SINGLETON`),这意味着在整个应用程序生命周期中,对于任何请求的`Service`实例,Guice都会返回同一个对象。 2. **初始化注入器**...
java运行依赖jar包
在这个方法里,你可以使用`bind`方法来绑定接口到其实现,或者使用`bindConstant`来绑定常量。此外,还可以使用`install`方法来安装其他模块,以实现模块的组合。 2. **注入器(Injector):** 是Guice的核心,负责...
在Guice中,我们通过注解(Annotations)来声明类之间的依赖关系,而Guice则负责在运行时自动管理和注入这些依赖。 1. **依赖注入原理**:Guice的核心思想是通过容器来管理对象的创建和生命周期,将对象的依赖关系...
在模块中,我们可以定义绑定(bindings),比如将接口绑定到具体的实现类,或者进行类型级别的绑定。 4. **提供者(Providers)**:Guice允许我们使用`Provider`接口来自定义对象的创建过程,这在某些需要特殊初始化...
例如,在上面的例子中,我们可以使用 Guice 来注入 Service 对象到 Client 对象中,而不需要使用工厂模式或其他方式来获取 Service 对象。这可以使得 Client 对象更加灵活和可维护。 Guice 的优越性体现在以下几个...
在这个例子中,用户和角色的配置被放置在 `shiro.ini` 文件中。需要注意的是,在这个配置中,仅使用了 ini 文件中的 `users` 和 `roles` 部分。 接下来,可以通过创建一个 Guice Injector 并从中获取 ...
- 在Guice-3.0中,开发者可以通过创建自定义模块,定义依赖关系,然后在应用程序启动时加载该模块,让Guice负责对象的创建和管理。 - 使用`Injector`实例化对象,Guice会根据配置自动注入依赖。 - 集成Guice-...
5. **测试**:在Guice中,我们可以使用`Guice.createInjector()`创建一个测试用的Injector,然后在这个Injector中注入模拟的依赖,进行测试。这种方式比传统方式更易于维护和扩展。 6. **绑定(Bindings)**:Guice...
在阅读《初试Guice》这篇博客文章时,你可能会学习到如何设置Guice模块,如何声明和注入依赖,以及如何在项目中集成和使用Guice。作者可能会分享一些最佳实践和常见陷阱,帮助读者更好地理解和应用Guice。此外,文章...
在"Guice入门教程HelloWorld篇"中,我们将学习如何使用Guice来构建简单的Java应用程序。首先,我们需要理解Guice的核心概念——模块(Module)和绑定(Binding)。模块是Guice配置的核心,它定义了哪些类应该被实例...
java运行依赖jar包
在"aop jar包"中,包含的可能是一个包含Spring AOP相关依赖的jar文件。使用这个jar包,开发者可以在自己的项目中引入Spring AOP的功能,从而实现对横切关注点的管理和控制。在实际应用中,我们可以通过Maven或Gradle...
在这个例子中,`MyModule`定义了一个模块,将`MyService`接口绑定到`MyServiceImpl`实现类。这样,当Guice需要创建`MyService`的实例时,它会自动使用`MyServiceImpl`。 Guice还支持AOP(面向切面编程)特性,通过`...
Guice是Google提供的一款轻量级的DI框架,它简化了在Java应用中管理对象及其依赖关系的过程。这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice...