Java 单元测试中Resource的问题
我在用JUnite做测试的时候,引入一个类的对象时经常要用到@Resource,不大理解其作用,请好心人帮忙详细解释一下,谢谢...
我在用JUnite做测试的时候,引入一个类的对象时经常要用到@Resource,不大理解其作用,请好心人帮忙详细解释一下,谢谢
展开
1个回答
展开全部
一、
@Resource这是使用到了java注解的一个机制。首先得明白java注解的机制是什么、原理以及有什么好处。
我这里只是简单介绍了JAVA中的注解的含义,具体使用方法和原理网上可以搜索到很详细的文章。
JAVA中的注解:
java.lang.annotation.Retention可以在您定义Annotation型态时,指示编译器如何对待您的自定义 Annotation,预设上编译器会将Annotation资讯留在class档案中,但不被虚拟机器读取,而仅用于编译器或工具程式运行时提供资讯。
二、对java注解有所认识之后,现在就来聊聊@Resource的用处了。
@Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,面 @Resource 默认按 byName 自动注入罢了。@Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。
三、通常我们在使用java依赖注入时,比较喜欢选择Spring的框架来达到我们的目的,而Spring框架在2.5版本后开始引入了java注解机制,如:@Resource。当然还可以通过看Spring框架的注解机制的使用来帮助学习对java注解的了解。
@Resource这是使用到了java注解的一个机制。首先得明白java注解的机制是什么、原理以及有什么好处。
我这里只是简单介绍了JAVA中的注解的含义,具体使用方法和原理网上可以搜索到很详细的文章。
JAVA中的注解:
java.lang.annotation.Retention可以在您定义Annotation型态时,指示编译器如何对待您的自定义 Annotation,预设上编译器会将Annotation资讯留在class档案中,但不被虚拟机器读取,而仅用于编译器或工具程式运行时提供资讯。
二、对java注解有所认识之后,现在就来聊聊@Resource的用处了。
@Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,面 @Resource 默认按 byName 自动注入罢了。@Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。
三、通常我们在使用java依赖注入时,比较喜欢选择Spring的框架来达到我们的目的,而Spring框架在2.5版本后开始引入了java注解机制,如:@Resource。当然还可以通过看Spring框架的注解机制的使用来帮助学习对java注解的了解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询