以下为个人总结的一些常见的注解:
一、@Component @Named @Bean
@Component
在开启自动组件扫描注解之后,在类上使用该注解,Spring会自动为这个类创建实例,创建的BeanId为类名第一个字母小写后的名称,如果要自定义BeanId,可以使用@Component(“名称”)。
@Named
这个注解是属于java本身的一个注解,可以作为@Component的替代方案,但是一般不用推荐此注解。
@Bean
这个注解一般修饰在方法上,被修饰的方法用于返回指定类的一个对象,相比@Component @Named,该注解的特别之处在于可以让我们定制生成Bean的方式,比如有一个接口A,有两个实现接口A的类B、C,我们可以实现让spring随机返回B或C的实例。同时,该注解还能实现和@Autowired类似的依赖注入功能,将方法参数上声明的bean注入进来。一般来说,生成的BeanId为方法名,如果要自定义BeanId,可以使用@Bean(name="名称")。
二、@Autowired @Inject
@Autowired
该注解可修饰在构造器和setter方法上,其实也可以修饰在任何方法上,spring会尽量在上下文中找到需要注入的bean进行注入,如果没有可以匹配的bean,或者出现匹配歧义,都会抛出异常。
@Inject
该注解是属于java本身的一个注解,可以作为@Autowired的替代方案。
三、@Configuration
该注解用于配置类上,可以替代spring的XML配置方式。
四、@ComponentScan
该注解修饰于类上,开启spring自动扫描,默认扫描与修饰类相同的包及其下所有子包。
五、@RequestMapping,@RequestParam,@PathVariable
@RequestMapping
用于MVC中的Controller的类或方法上,声明访问路径,常用的有两个参数value和method,value表明路径,method表明请求类型(get,post等等)。
value参数中可以使用占位符“{}”,比如一个请求的路径是/user/123,表明请求userId为123的用户,我们可以使用/user/{userId},
然后在具体处理方法参数上使用@PathVariable("userId")将userId赋值给方法参数。
@RequestParam
用于方法参数上,作用是将Get请求url中的参数赋予方法参数,常用的有两个参数value和defaultValue,value表明请求中的参数名称,defaultValue表明默认值。
@PathVariable
作用与@RequestParam注解差不多,都是将请求中的某个值赋予方法参数,不同之处在于@RequestParam对应的是get请求中显式声明的参数名,而@PathVariable对应的是占位符的名称。
六、@Valid
一般注解于方法参数上,表明被注解的参数要满足java校验限制,这里涉及到java校验注解。
七、@ResponseStatus,@ExceptionHandler
@ResponseStatus
标注于异常类上,用于将指定异常映射为http状态码。
@ExceptionHandler
标注于控制器的方法上,可让该方法处理指定的异常。
陆续更新中。。。