springmvc常用的注解及其含义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wlp5188199/article/details/79274171
  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容器中,相当于配置文件中的<bean id="" class=""/>)
             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 
        的自动扫描功能,这也可以通过<context:component-scan/>实现。 

展开阅读全文

没有更多推荐了,返回首页