1.@Controller
作用: 告诉springmvc的dispatcherServlet这是一个Controller然后被dispatcherServlet的上下文所管理,
并且完成它的依赖注入
2. @Service
作用:这个注解常用于标注业务层组件
3. @Autowired
作用:它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作
@Autoware默认按类型匹配注入Bean
required属性:如果希望Spring即使找不到匹配的Bean完成注入也不要抛出异常,那么可以使用
@Autoware(required=false)进行标注:
4. @RequestMapping
作用:@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是
相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的
@RequestMapping 都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。
5.@RequestParam、@PathVariable
作用:两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,url不同
(1)@PathVariable的url是这样的:http://host:port/.../path/参数值
@RequestMapping("/bookings/{booking}")
public String getBooking(@PathVariable Long booking) {
}
(2)@RequestParam的url是这样的:http://host:port/.../path?参数名=参数值
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("petId") int petId, ModelMap model) {
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}
6.@Cacheable
作用:基本思想是在方法加上@Cacheable注解,这个方法的返回值将具有缓存特性。
@Cacheable注解可以用在方法或者类级别。当他应用于方法级别的时候,就是如上所说的缓存返回值了。
(1)当应用在类级别的时候,这个类的所有方法的返回值都将被缓存。
(2)@Cacheable注解有三个参数,value是必须的,还有key和condition。第一个参数,
也就是value指明了缓
存将被存到什么地方。
(3)任何存储在缓存中的数据为了高速访问都需要一个key。Spring默认使用被@Cacheable
注解的方法的签名
来作为key,当然你可以重写key,自定义key可以使用SpEL表达式。
(4) @Cacheable的最后一个参数是condition(可选),同样的,也是引用一个SpEL表达式。
但是这个参数将
指明方法的返回结果是否被缓存。
7.@Resource(确切的说是@Resource注解是由J2EE提供)
作用:@Resource要求提供一个Bean名称的属性(name),如果属性为空,
则自动采用标注处的变量名或方法名作为Bean的名称。
@resource注解就是把一个bean注入到当前的类中,可以不必通过配置文件或者导包的方式注入
就可以使用该bean,
默认是ByName的方式注入,如:
@resource(name=“personDaoBean”)
private personDaoBean personDaobean;
这样就可以直接使用personDaoBean这个Bean,以及其setter和getter方法。
8. @ResponseBody
作用:该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,
通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)
使用。配置返回JSON和XML数据
9.@Component
作用: @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
(把普通pojo实例化到spring容器中,相当于配置文件中的)
10. @Scope
作用: @scope 就是用来配置 spring bean 的作用域,它标识 bean 的作用域。
@Scope 简单点说就是用来指定bean的作用域
scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,
即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不
再处于这些scope的限定之后,容器通常会销毁这些对象
11.@Required
作用:Spring 配置文件中 dependency-check 依赖检查的灵活性不够,并不能满足我们所有的需求
Spring还提供一种更加灵活的检查方式
注意:@required只能注设置到setter方法上面
12.@Qualifier
作用:我们知道,@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用
@Autowired通过此注解完成从spring配置文件中 查找满足studentDao类型的bean
@Qualifier("studentDao")则按照名称经行来查找转配的
13.@Repository
作用:它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。
同时,为了让 Spring能够扫描类路径中的类并识别出 @Repository 注解,需要在 XML 配置文件中启用Bean
的自动扫描功能,这也可以通过实现。