Spring的注解解析
一.Java中的注解
1.概述:
java在jdk1.5之后引入了注解,如果你想自定义注解可以使用@Interface来定义,可以看一下@Override的源码。
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { }
2.元注解:
如上面的代码,元注解可以说是注解注解的注解,有点绕...其实就是定义这个注解的基本特征和功能等。
@Retention:用于提示保留多长时间,Source表示保留在源码,被编译器抛弃,class表示编译后还在。Runtime表示保留到运行时,也就是说可以反射。
@Target:注解使用的地方,上面的代码明显表示用在方法上。
@Documented:能否被javadoc处理并保留。
二.Spring中的注解
1.Bean有关
@Autowire:自动装配,首先Spring的Ioc容器会扫包,加载里面的java类到bean,然后会主动注入(根据类型注入)。可以设置required-false,无法注入时不会报错。
@Required:适用于bean属性setter方法,并表示受影响的bean属性必须在XML配置文件在配置时进行填充。否则,容器会抛出一个BeanInitializationException异常。
@Qualifier:指定注入时的Bean的名字。
@Resource:默认是按byName自动注入。
2.SpringMvc的注解
@Controller:指定该类为控制器类,处理业务。
@service:指定该类为服务层,具体处理业务
@RequestMapping:处理请求地址映射。
@RequestParam:获取request里面的请求参数,/emps?pageNo=2,有问号,参数为pageNo=2,就要 @requestParam(value"pageNo")去获取。
@PathVariable:动态获取url上面的参数,比如说:emp/7,没有?吧,
@RequestBody:用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
3.Spring中使用注解
<context-companent-scan base-package="包">,在spring的配置文件里面写这一行代码,就会自动扫包装配。
<aop:aspectj-autoproxy>:aop的注解