springMvc的常用注解 :

@Controller
 :用于标记在一个类上,使用它标记的类就是一个springmcv Controller对象,分发处理器将会扫描使用了该注解
 的类的方法,并检测该方法是否使用了@RequestMapping注解。@Controller只是定义
 了一个控制器类,而使用了@RequestMapping注解的方法才是真正处理请求的处理器

@RequestMapping
 :用于标记在一个方法或类上,用来处理请求地址映射的注解,用于类上,表示类中所有响应请求处理的方法都是以该地址
  作为父路径,返回值会通过视图解析器解析为实际的物理视图,然后做转发操作
 属性:
  value:指定请求的实际地址
  method: 指定请求的method类型
  consumes: 指定处理请求的内容提交类型(Content-Type),例如application/josn,text/html
  produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
  param: 指定request中必须包含的参数值
  headers:指定request中必须包含某些指定的header值,才能让改方法处理请求

@Resource和@Autowired
  @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
  1、共同点
    两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。
  2、不同点
  (1)@Autowired
  @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。
   返回值会通过视图解析器解析为实际的物理视图,然后做转发操作

@Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属            性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualifier注解一起使用。如下:
   public class HelloWorld{
          @Autowired
          @Qualifier("userDao")
    private UserDao userDao;
   }
    (2)@Resource默认按照ByName自动注入,由J2EE提供,需要导入包javax.annotation.Resource。
        @Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为         bean的类型。
         所以,如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,
         这时将通过反射机制使用byName自动注入策略。
 
@PathVariable
 用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
 @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET) 
      public String getLogin(@PathVariable("userId") String userId, 
          @PathVariable("roleId") String roleId){ 
          System.out.println("User Id : " + userId); 
          System.out.println("Role Id : " + roleId); 
          return "hello"; 
      }

@CookieValue
  作用:用来获取Cookie中的值;
  参数: value:参数名称   required:是否必须  defaultValue:默认值
 @RequestMapping("/testCookieValue")
    public String testCookieValue(@CookieValue("JSESSIONID") String sessionId) {
        System.out.println("JSESSIONID = " + sessionId);
        return "success";
    }

@RequestParam
  @RequestParam用于将请求参数区数据映射到功能处理方法的参数上,用例:
 @RequestMapping("/testRequestParam")
  public String testRequestParam(@RequestParam("id") int id) {
   System.out.println("testRequestParam  " + id);
        return "success";
    }

@SessionAttributes
  @SessionAttributes即将值放到session作用域中,写在class上面。  
  @SessionAttributes 除了可以通过属性名指定需要放到会话中的属性外(value 属性值),
还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中(types 属性值),
用例:@SessionAttributes(value = {"user"}, types = {String.class})

@ResponseBody 
  作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)

Springboot常用注解:

@SpringBootApplication:
 包含@Configuration、@EnableAutoConfigeration、@ComponentScan
 通常用在主类上

@Repository:
 用于标注数据访问组件,既DAO组件

@Service
 用于标注业务层组件

@RestController:
 包含@Controller、@ResponseBody
 用于标注控制层组件

@ResponseBody:
 表示该方法返回的结果直接写入Http Response body中,不会被解析为跳转路径

@Component:
 泛指组件,当组件不好归类时使用

@ComponentScan:
 组件扫描,相当于<context:component-scan>,如果扫描到有@Component、@Controller、@Service等这些
 注解的类,则把这些类祖册为bean

@Configuration:
 指出该类是Bean配置的信息源,相当于XML中的<beans></beans>,一般加在主类上

@Bean:
 相当于XML中的<bean></bean>,放在方法上,意思是生产一个Bean,并交由spring管理

@EnableAutoConfiguration:
 让Springboot根据应用所声明的依赖来对spring框架进行自动配置,一般加在主类上

@AutoWired:
 byType方法。把配置好的Bean拿来用,完成属性、方法的组装,自动装配,当加上(required=false)时,
 即便找不到这个Bean也不报错

@Qualifier:
 当有多个同一类型的Bean时,可以用@Qualifier("name")来指定,与@Autowired配合使用

@Resource(name="name",type="type"):
 没有括号的话,默认ByName,与@Autowired类似

@Profiles
 spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效
 任何@Component或@Configuraion都能被@Profile标记,从而限制加载它的时机

@ConfigurationProerties
 SpringBoot加载校验外部的配置

@ControllerAdvice
 包含@Component,可以被扫描,用于统一处理异常

@ExceptionHandler(Exception.class):
 用于方法上表示遇到这个异常就执行这个方法,与@ControllerAdvice 配合使用

常见的springmvc、SpringBoot的注解的更多相关文章

  1. Spring SpringMVC SpringBoot SpringCloud 注解整理大全

    Spring SpringMVC SpringBoot SpringCloud 注解整理 才开的博客所以放了一篇以前整理的文档,如果有需要添加修改的地方欢迎指正,我会修改的φ(๑˃∀˂๑)♪ Spri ...

  2. [转载]SpringBoot系列: SpringMVC 参数绑定注解解析

    本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析   本文介绍了用于参数绑 ...

  3. spring springMvc spring-boot spring-cloud分别是什么

    本文来源于:克己习礼成仁   的<spring springMvc spring-boot spring-cloud分别是什么> 什么是spring 关于spring的定义无论是从官方还是 ...

  4. Spring是什么 包括SpringBean SpringMVC SpringBoot SpringCloud

    什么是Spring:spring是个开源框架,spring mvc是基于spring的一个mvc框架,spring boot是基于spring4的条件注册的一套快速开发整合包. Spring两大特征: ...

  5. springmvc springboot 跨域问题(CORS)

    官方文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html springmvc s ...

  6. SpringBoot 入门篇(二) SpringBoot常用注解以及自动配置

    一.SpringBoot常用注解二.SpringBoot自动配置机制SpringBoot版本:1.5.13.RELEASE 对应官方文档链接:https://docs.spring.io/spring ...

  7. 开发者说:Sentinel 流控功能在 SpringMVC/SpringBoot 上的实践

    从用户的视角来感受一个开源项目的成长,是我们推出「开发者说」专栏的初衷,即在开发者进行开源项目选型时,提供更为立体的项目信息.专栏所有内容均来自作者原创/投稿,本文是「开发者说」的第6篇,作者 Jas ...

  8. Springboot + redis + 注解 + 拦截器来实现接口幂等性校验

    Springboot + redis + 注解 + 拦截器来实现接口幂等性校验   1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF ...

  9. 接近8000字的Spring/SpringBoot常用注解总结!安排!

    0.前言 大家好,我是 Guide 哥!这是我的 221 篇优质原创文章.如需转载,请在文首注明地址,蟹蟹! 本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide:http ...

随机推荐

  1. 移动前端开发之viewport,devicePixelRatio的深入理解

    移动前端开发之viewport的深入理解 在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的met ...

  2. csharp:using Newtonsoft.Json.Net2.0 in .net 2.0 webform

    /// <summary> /// http://www.weather.com.cn/data/sk/101280601.html /// {"weatherinfo" ...

  3. RocketMQ读书笔记2——生产者

    [生产者的不同写入策略] 生产者向消息队列里写入数据,不同的业务需要生产者采用不同的写入策略: 同步发送.异步发送.延迟发送.发送事务消息等. [DefaultMQProduce示例] public ...

  4. 任务九:使用HTML/CSS实现一个复杂页面

    任务目的 通过实现一个较为复杂的页面,加深对于HTML,CSS的实战能力 实践代码的复用.优化 任务描述 通过HTML及CSS实现设计稿 设计稿PSD文件(点击下载),效果如 效果图(点击打开) 整个 ...

  5. Scrum过程管理学习心得

    认识敏捷开发 在课堂上了解了瀑布开发,又在课下学习敏捷开发过程后,我发现,敏姐团队做的开发工作虽然和瀑布开发一模一样,但他们的做事方式很不一样.简单来说,两者的差别在于:瀑布开发必须先完成当前的步骤后 ...

  6. spring----面试题

    1.什么是Spring beans? Spring beans 是那些形成Spring应用的主干的java对象.它们被Spring IOC容器初始化,装配,和管理.这些beans通过容器中配置的元数据 ...

  7. SQL Server ->> 自动创建表并从文件加载数据

    这个存储过程自动创建表并从文件加载数据. 有一点需要说明的是Excel 12.0驱动是兼容了Excel 97-2003和Excel 2007两者格式的Excel文件. CREATE PROCEDURE ...

  8. C++ inheritance: public, private. protected ZZ

    公有继承(public).私有继承(private).保护继承(protected)是常用的三种继承方式. 1. 公有继承(public) 公有继承的特点是基类的公有成员和保护成员作为派生类的成员时, ...

  9. SQL Server 2014 聚集列存储

    SQL Server 自2012以来引入了列存储的概念,至今2016对列存储的支持已经是非常友好了.由于我这边线上环境主要是2014,所以本文是以2014为基础的SQL Server 的列存储的介绍. ...

  10. Lua的协同程序初探

    Content: 前两天把Lua的协同程序概念看了一下,不是很懂,只能说<Programming In Lua>中把它解释成线程让人很好的理解起来,但是真正去看的时候,收获并不是很大.第一 ...