读书人

诠释诠释

发布时间: 2012-09-15 19:09:28 作者: rapoo

注释诠释

1.?????? @Override

@Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记 ? @Override是伪代码,表示重写(当然不写也可以)。

不过写上有如下好处:

1>可以当注释用,方便阅读

?2>编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错 比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法) ? 使用该标记是为了增强程序在编译时候的检查,如果该方法并不是一个覆盖父类的方法,在编译时编译器就会报告错误。

2.?????? @SuppressWarnings

J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。

?

@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。

3.?????? @Service

@Service注释表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,

?* 例如Chinese实例化为chinese,American实例化为american,

?* 如果需要自己改名字则:@Service("你自己改的bean名")。

4.?????? @Autowired

代替了get(),set()方法,自动注入

* @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

以前给一个Bean配置属性时,Bean必须配置<property name="propName" ref="beanId"/>,然后在Java文件,还必须增加属性propname的getter和setter方法。

有了@Autowired注释后,我们可以简化配置文件和getters和setters方法。

?

5.?????? @Component

我们使用了一个@Component注释,使用@Component 注释就可以将一个类定义成为Spring 容器中的 Bean。当然我们也同样可以使用带参数的@Component(“base”)注释,而此时我们使用了它提供的一个可选的入参将Bean的名称定义为base。

6.?????? @Resource 注释

@Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,面 @Resource 默认按 byName 自动注入罢了。@Resource 有两个属性是比较重要的,分别是 name 和 type,Spring 将 @Resource 注释的 name 属性解析为 Bean 的名字,而 type 属性则解析为 Bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。

?

Java代码:

package?com.baobaotao;??? ?? ??

import?javax.annotation.Resource;??? ??? ??

public?class?Boss?{??? ??

??//?自动注入类型为?Car?的?Bean??? ??

??@Resource?? ??

private?Car?car;??? ????

??//?自动注入?bean?名称为?office?的?Bean??? ??

???@Resource(name?=?"office")??? ??

?private?Office?office;??? ??

}??

?

7.?????? @Controller

@Controller 标注的类,说明此类是个Action,并且在Spring中创建它的bean。

我们可以给他赋予参数@ Controller(“/pages/role”),参数的这个Action在Spring中的bean名字。

8.?????? @Scope

默认情况下通过@Component定义的Bean都是singleton的,如果需要使用其它作用范围的Bean,可以通过@Scope来达到目的。

?

读书人网 >软件架构设计

热点推荐