0 0

在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();
	}
}
目前还没有答案

相关推荐

    sisu-guice-3.1.3-no_aop.jar

    sisu-guice-3.1.3-no_aop.jar

    guice-2.0-no_aop.jar

    guice-2.0-no_aop.jar

    Robojuice jar 包文件下载(内含guice-2.0-no_aop.jar 和roboguice-1.1.2.jar )

    `guice-2.0-no_aop.jar`是Guice的一个版本,不包含Aspect Oriented Programming(AOP)支持,这可能是因为在Android环境中,AOP的使用可能会增加复杂性和性能开销。 接下来,我们来看RoboGuice。RoboGuice是Guice的...

    Guice 中文文档 例子

    5. **实战案例**: 提供实际的代码示例,演示如何在项目中应用 Guice。 通过阅读文档和运行示例,开发者可以快速理解和掌握 Guice 的使用方法,将其有效地应用于实际项目中,提升代码质量。 **总结** Guice 是一个...

    Guice用户中文指南

    其中将`Service`接口绑定到了`ServiceImpl`实现,并且指定了单例作用域(`Scopes.SINGLETON`),这意味着在整个应用程序生命周期中,对于任何请求的`Service`实例,Guice都会返回同一个对象。 2. **初始化注入器**...

    sisu-guice-3.2.3-no_aop.jar

    java运行依赖jar包

    Guice用户指南翻译

    在这个方法里,你可以使用`bind`方法来绑定接口到其实现,或者使用`bindConstant`来绑定常量。此外,还可以使用`install`方法来安装其他模块,以实现模块的组合。 2. **注入器(Injector):** 是Guice的核心,负责...

    guice超轻量级依赖注入

    在Guice中,我们通过注解(Annotations)来声明类之间的依赖关系,而Guice则负责在运行时自动管理和注入这些依赖。 1. **依赖注入原理**:Guice的核心思想是通过容器来管理对象的创建和生命周期,将对象的依赖关系...

    google guice 3.0源码

    在模块中,我们可以定义绑定(bindings),比如将接口绑定到具体的实现类,或者进行类型级别的绑定。 4. **提供者(Providers)**:Guice允许我们使用`Provider`接口来自定义对象的创建过程,这在某些需要特殊初始化...

    google Guice 1.0 用户指南 中文

    例如,在上面的例子中,我们可以使用 Guice 来注入 Service 对象到 Client 对象中,而不需要使用工厂模式或其他方式来获取 Service 对象。这可以使得 Client 对象更加灵活和可维护。 Guice 的优越性体现在以下几个...

    shiro,guice集成

    在这个例子中,用户和角色的配置被放置在 `shiro.ini` 文件中。需要注意的是,在这个配置中,仅使用了 ini 文件中的 `users` 和 `roles` 部分。 接下来,可以通过创建一个 Guice Injector 并从中获取 ...

    guice-3.0.rar

    - 在Guice-3.0中,开发者可以通过创建自定义模块,定义依赖关系,然后在应用程序启动时加载该模块,让Guice负责对象的创建和管理。 - 使用`Injector`实例化对象,Guice会根据配置自动注入依赖。 - 集成Guice-...

    初试Guice测试文件

    5. **测试**:在Guice中,我们可以使用`Guice.createInjector()`创建一个测试用的Injector,然后在这个Injector中注入模拟的依赖,进行测试。这种方式比传统方式更易于维护和扩展。 6. **绑定(Bindings)**:Guice...

    初试Guice(转)

    在阅读《初试Guice》这篇博客文章时,你可能会学习到如何设置Guice模块,如何声明和注入依赖,以及如何在项目中集成和使用Guice。作者可能会分享一些最佳实践和常见陷阱,帮助读者更好地理解和应用Guice。此外,文章...

    guice入门教程helloworld篇

    在"Guice入门教程HelloWorld篇"中,我们将学习如何使用Guice来构建简单的Java应用程序。首先,我们需要理解Guice的核心概念——模块(Module)和绑定(Binding)。模块是Guice配置的核心,它定义了哪些类应该被实例...

    sisu-guice-3.2.5-no_aop.jar

    java运行依赖jar包

    aop jar包.zip

    在"aop jar包"中,包含的可能是一个包含Spring AOP相关依赖的jar文件。使用这个jar包,开发者可以在自己的项目中引入Spring AOP的功能,从而实现对横切关注点的管理和控制。在实际应用中,我们可以通过Maven或Gradle...

    Google Guice需要的jar

    在这个例子中,`MyModule`定义了一个模块,将`MyService`接口绑定到`MyServiceImpl`实现类。这样,当Guice需要创建`MyService`的实例时,它会自动使用`MyServiceImpl`。 Guice还支持AOP(面向切面编程)特性,通过`...

    基于guice的简单项目

    Guice是Google提供的一款轻量级的DI框架,它简化了在Java应用中管理对象及其依赖关系的过程。这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice...

Global site tag (gtag.js) - Google Analytics