常见的springmvc、SpringBoot的注解
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的注解的更多相关文章
- Spring SpringMVC SpringBoot SpringCloud 注解整理大全
Spring SpringMVC SpringBoot SpringCloud 注解整理 才开的博客所以放了一篇以前整理的文档,如果有需要添加修改的地方欢迎指正,我会修改的φ(๑˃∀˂๑)♪ Spri ...
- [转载]SpringBoot系列: SpringMVC 参数绑定注解解析
本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析 本文介绍了用于参数绑 ...
- spring springMvc spring-boot spring-cloud分别是什么
本文来源于:克己习礼成仁 的<spring springMvc spring-boot spring-cloud分别是什么> 什么是spring 关于spring的定义无论是从官方还是 ...
- Spring是什么 包括SpringBean SpringMVC SpringBoot SpringCloud
什么是Spring:spring是个开源框架,spring mvc是基于spring的一个mvc框架,spring boot是基于spring4的条件注册的一套快速开发整合包. Spring两大特征: ...
- springmvc springboot 跨域问题(CORS)
官方文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html springmvc s ...
- SpringBoot 入门篇(二) SpringBoot常用注解以及自动配置
一.SpringBoot常用注解二.SpringBoot自动配置机制SpringBoot版本:1.5.13.RELEASE 对应官方文档链接:https://docs.spring.io/spring ...
- 开发者说:Sentinel 流控功能在 SpringMVC/SpringBoot 上的实践
从用户的视角来感受一个开源项目的成长,是我们推出「开发者说」专栏的初衷,即在开发者进行开源项目选型时,提供更为立体的项目信息.专栏所有内容均来自作者原创/投稿,本文是「开发者说」的第6篇,作者 Jas ...
- Springboot + redis + 注解 + 拦截器来实现接口幂等性校验
Springboot + redis + 注解 + 拦截器来实现接口幂等性校验 1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF ...
- 接近8000字的Spring/SpringBoot常用注解总结!安排!
0.前言 大家好,我是 Guide 哥!这是我的 221 篇优质原创文章.如需转载,请在文首注明地址,蟹蟹! 本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide:http ...
随机推荐
- 【转】Dom节点操作常用方法
1.访问/获取节点 document.getElementById(id); //返回对拥有指定id的第一个对象进行访问 document.getElementsByName(name); //返回带 ...
- DOM节点常见的属性及操作
(1)常见节点属性 childNodes 子节点 nodeList children 子节点(元素节点) HTMLCollection parentNode 父节点 p ...
- div 居中方法汇总
本文是从简书复制的, markdown语法可能有些出入, 想看"正版"和更多内容请关注 简书: 小贤笔记 情况一: 父子容器宽高已知 方法一 html <div class= ...
- XPath路径表达式笔记(转载)
简单说,xpath就是选择XML文件中节点的方法. 所谓节点(node),就是XML文件的最小构成单位,一共分成7种. - element(元素节点)- attribute(属性节点)- text ( ...
- AndroidStudio运行时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
本来想调出MMDS,没想到报出这个错误: 最后发现原来是自己选Android Device Monitor不小心把Enable ADB Integration前面的√去掉了.点击工具栏中的Tools, ...
- 第四次作业-第一次scrum冲刺
团队成员 周斌 舒 溢 许嘉荣 唐 浩 黄欣欣 1.第一次冲刺任务安排 对Github上的HUSTOJ开源项目进行Fork,搭建基本环境 2.用户需求 ①基本功能显示在首页 ②能够提交题目并判题,并对 ...
- [acm 1002] 浙大 Fire Net
已转战浙大 题目 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2 浙大acm 1002 #include <iostre ...
- Word 2010 去除文字或段落背景色
在复制网页文本到Word时,有时会带有网页上的背景颜色.下面采用两种方法解决这种问题,可根据不同需要进行选择. 方法一:清除样式 此种方法适用于只需要网页文字,而不想要网页任何样式信息,如字体大小,段 ...
- Python pymysql模块学习心得
PyMySQL包含了一个纯Python的MySQL客户端的库,它的目的是用来替换MySQLdb,并且工作在CPython,PyPy和IronPython. PyMySQL官方地址:https://py ...
- linux 用户和组操作
linux用户操作 查看登陆用户:whoami (结果最简洁) 或者who mom likes 或者who am i查看所有用户:cat /etc/passwd 添加:sudo adduser lil ...