Guice中常用标注的介绍
原创
©著作权归作者所有:来自51CTO博客作者范立锋的原创作品,请联系作者获取转载授权,否则将追究法律责任
标注是在JDK 1.5以后提出的概念,Guice的标注不仅本身支持依赖注入,而且对自定义注解、用户自定义Bean作用域都提供了很好的支持。以下就是Guice用到的所有标注。
1.1 @BindingAnnotation标注
当我们新建绑定标注时需要使用@BindingAnnotation进行声明,如代码1所示。代码1 newAnnotation.java
@Retention(RUNTIME)
@Target({ FIELD, PARAMETER })
@BindingAnnotation
public @interface newAnnotation {}
在这段代码中新建一个标注,这个标注会在编译时一起编译,可以作用的对象是参数和字段,然后用@BindingAnnotation设置这个标注,用于进行绑定。
1.2 @ImplementedBy标注
@ImplementedBy标注是用来声明当前接口支持的实现类,如代码12-8所示。
代码2 ImplementedBy标注
@ImplementedBy(SunyangImpl.class)
public interface Sunyang {}
在这段代码中用@ImplementedBy标注设置了Sunyang接口支持的实现类为SunyangImpl。
1.3 @Inject标注
@Inject标注作用是依赖注入,它根据作用的对象不同分为setter方法注入、构造方法注入、字段注入,可以根据实际情况来选择。@Inject标注通过optional参数来定义注入的接口是否需要注入的实现类,默认情况必须显示声明注入接口的实现类。具体使用在下文中介绍。
1.4 @ProvidedBy标注
@ProvidedBy 标注,用来定位并实例化提供者类,并用它获取想要的对象。否则实例化类型本身。
1.5 @ScopeAnnotation标注
@ScopeAnnotation标注,用于指定作用域的标注必须有一个 @ScopeAnnotation标注,一个类只能使用一个此类标注。
1.6 @Singleton标注
@Singleton标注作用于一个接口实现类上,声明这个实现类作用于一个单例,如代码3所示。
代码3 Singleton标注
package sunyang;
import com.google.inject.Singleton;
@Singleton
public class SunyangImpl implements Sunyang {
public void print() {
System.out.println("技术凝聚实力,专业创造辉煌");
}
}
这段代码中用@Singleton标注声明了SunyangImpl对Sunyang的实现作用于一个单例。
1.7 @Named标注
@Named标注作用于成员变量或者方法的参数,可以通过Binder的annotatedWith方法将其得到。
1.8 @RequestParameters标注
@RequestParameters用来控制HTTP请求为Map类型参数或者字段的注入。
1.9 @RequestScoped标注
想要获得当前请求的实例必须将@RequestScoped标注在执行类中声明。
1.10 @SessionScoped标注
想要获得当前会话的实例必须将@SessionScoped标注在执行类中声明。
上一篇:Guice的架构分析
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
C++中常用容器介绍
详细介绍C++中的常用容器的常用方法,包括vector,map,string,set等等。
数据结构 c++ #include 自定义 i++ -
深度学习中常用损失函数介绍
本文介绍了几种常用的机器学习损失函数,包括均方误差(MSE)、平均绝对误差(MAE)、交叉熵损失、二元交叉熵损失、带对数的二
深度学习 人工智能 pytorch 损失函数 概率分布 -
Web中常用字体介绍(转)CSS3 字体 css html 重置