Spring注解

2023-05-16

注解介绍

注解有两个作用:标注和注入

  • 标注:类路径下自动扫描,减少在xml中配置bean,例如@Component,@Service
  • 注入:自动装配,需要类的地方直接加注解就可以引入该类;例如:@Autowired
  • 在spring中开启注解:<context:compnnent-scan base-package="...">指定扫描路径
  • spring生成的注解有默认名字,为类名的首字母小写形式,如果要指定自定义的需要类似@Service(“xxx”)来指定
  • Spring中的bean,默认是singleton,即生成的对象是全局单例的,如果要改,需要@scope(“prototype”)指明,scope可以选择:singleton、prototype、request、session、global session;
  • 可以用ApplicationContext.getBean(“zoo”),来获取Zoo.java类

常见注解分类

Spring中有如下几种分类:

  1. Spring原生:Required、Autowired、value、Qualifier、Component及其扩展的Repository、Service、Controller
  2. JSR-250:Resource、PostConstruct、Predestroy
  3. JSR-330:inject、Named、Qualifier
  4. JPA注解:PersistentContext、PersistenceUnit
  5. Springmvc注解:RequstBody、RequastParam、ResponseBody,ResponseParam,Pathvariable,ModelAttribute;

常用注解

  1. Component:标注组件,与持久层的Repository、业务层的Service、控制层的Controller功能一样,加上注解可以让Spring找到相应的类,在对组件不好分类的时候,用Component注解来标识;
  2. Autowired:是Spring的注解,自动注入类,需要Spring去配置文件中找(或者上下文找标注过的类)相应的Bean,如果找不到会报错,可以用@Autowired(required=false)来设置找不到不报错,返回null
  3. Resource:与Autowired功能相似,默认通过name来匹配,是J2EE的注解,可以指定按照type来匹配@Resource(type=xxx.class)

Springmvc注解

  1. ResponseBody:使用在方法上,返回json格式的数据,直接输入到Http response body中;
  2. RequestBody:使用在参数前,标注对象,Spring完成对象-协议之间的转化,解析post data body,然后绑定到相应的bean上;支持application/json或者application/xml协议格式;与ResponseBody一样,是由HandlerAdapter配置的HttpMessageConverter在对象和协议之间转化的;
  3. RequstParam:获取参数,对于简单类型的绑定,对应的content-type为application/x-www-form-urlencoded,即form表单提交的数据;
  4. PathVariable:接收路径参数
    5.RestController:是Controller和Response两个注解的组合;
  5. ModelAttribute:渲染model,model可以看做是一个map,改注解的作用是用来传递和保存数据,可以使用在方法上和参数上;
    • 使用在方法上,则这个方法在@RequestMapping方法调用之前,在model中填充属性,例如填充下拉列表,用来在request的model里put(“小写开头的类名”,类名),该model就是标注方法的返回值;
    • 使用在参数上,数据绑定,将相应名称的值绑定到注解的参数bean上,绑定源查找顺序:SessionAttribute注解、ModelAttribute注解、new一个新的实例;
  6. HttpEntity,除了能获得request和response之外,能访问请求和响应头,使用getHeaders和getBody()

参考

Spring常用注解标签详解
Spring常用注解汇总

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring注解 的相关文章

随机推荐

  • MySQL数据类型--日期和时间类型

    MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的 MySQL中有多种表示日期和时间的数据类型 其中 xff0c year类型表示时间 xff0c date类型表示日期 xff0c time类型表
  • MySQL数据类型--二进制类型

    二进制类型是在数据库中存储二进制数据的数据类型 二进制类型包括binary xff0c varbinary xff0c bit xff0c tinyblob xff0c blob xff0c mediumblob xff0c longblo
  • 单行注释和多行注释

    我们在实际编码中 xff0c 总是需要为程序添加一些注释 什么是注释 xff1f 注释就是一段文字 xff0c 这段文字并不是必须的 xff0c 也不直接参与代码运行 注释用来说明某段代码的作用 xff0c 或者说明某个类的用途 xff0c
  • Integer源码解析

    这篇博客我来整理下以Integer为例整理下包装类的源码 首先来看一段代码 xff1a public class LinkinPark public static void main String args Integer a 61 1 I
  • 不可变类

    不可变类 先来科普2个概念 xff0c 可变类和不可变类 1 xff09 xff0c 不可变类的意思就是创建该类的实例后 xff0c 该实例的实例变量是不可改变的 Java提供的8个包装类和String类都是不可变类 xff0c 当创建他们
  • 博客迁移<a>jiangweili.me</a>

    各位 xff0c 我的博客已经迁移 xff0c 具体请移步新博客地址 我会重新整理JavaSE和JavaEE相关 xff0c 最后搭建自己的一套web框架 xff0c 谢谢各位
  • Mac环境下localhhost无法访问

    今天访问本地服务器 localhost 提示无法访问 查看apache 错误日志最后一行提示以下错误 于是经过百度 搜索 34 AH00045 child process 1409 still did not exit sending a
  • RNAseq---Hisat2 标准输出中比对率信息解读

    RNA Seq Hisat2 标准输出中比对率信息解读 本文具体解释部分 xff08 一 xff09 中内容复制自Biostar内容 xff0c 后面附上我实际的例子 xff0c 二者略有不同 xff0c 整体理解上没大问题 xff0c 有
  • 解决Android单个dex文件不能超过65535个方法问题

    一 找坑 xff1a 谷歌规定单个dex文件中的方法不能超过65536的限制 我们编写项目过程中在工程的lib文件夹下引用的第三方插件jar包太多 或者项目过大 xff0c 编译运行时就有可能报出com android dex DexInd
  • Decode Ways问题及解法

    问题描述 xff1a A message containing letters from A Z is being encoded to numbers using the following mapping 39 A 39 gt 1 39
  • Android性能优化(一)内存泄露优化(静态变量、单例模式、属性动画)

    内存泄露优化分为两个方面 xff0c 一方面是在开发过程中避免写出有内存泄露的代码 xff0c 另一方面是通过一些分析工具比如 MAT来找出潜在的内存泄露继而解决 一 静态变量导致内存泄露 一般情况下静态变量引用了或者内部持有Activit
  • 图论 —— 图的连通性 —— Tarjan 求强连通分量

    概述 Tarjan 算法是基于对图深度优先搜索的算法 xff0c 每个强连通分量为搜索树中的一棵子树 搜索时 xff0c 把当前搜索树中未处理的节点加入一个堆栈 xff0c 回溯时可以判断栈顶到栈中的节点是否为一个强连通分量 基本思路 定义
  • 开发日记(一)

    这是自己编程第二天 xff0c 自己解决了好几个问题 xff0c 觉得很有成就感 xff0c 决定写下以后开发中遇到的问题 1 在多个Activity中传递数据 xff0c 之前只学过绑定基本的putExtra xff0c 今天上网一搜 x
  • 源程序生成控制流图和du-path

    最近上 源代码分析技术 这个课 xff0c 老师让写一个程序 xff0c 由一段c代码 xff0c 生成生成控制流图和du path xff0c 控制流图不用解释了 xff0c 说一下du path xff0c 这个术语是针对变量来说的 x
  • pandas使用笔记

    DataFrame使用笔记 dates 61 pd date range span class hljs string 39 20160728 39 span periods 61 span class hljs number 6 span
  • keras

    大神笔记 xff0c 转载自http blog csdn net u012162613 article details 45397033 Keras简介 Keras是基于Theano的一个深度学习框架 xff0c 它的设计参考了Torch
  • gensim similarity计算文档相似度

    向量空间模型计算文档集合相似性 0 将原始输入的词转换为ID xff0c 词的id表示法简单易用 xff0c 但是无法预测未登记词 xff0c 难以挖掘词关系 xff1b 词汇鸿沟 1 任意两个词之间是独立的 xff0c 无法通过词的ID来
  • doc2vec计算文档相似度

    doc2vec是基于word2vec的 xff0c word2vec对于计算两个词语的相似度效率比较好 xff0c 修改了word2vec中的cbow和skip gram模型 xff0c paragraph vector直接得到doc向量
  • win10远程登录提示“您的远程桌面会话已结束。另一用户已连接到此远程计算机,因此您的连接已丢失……”

    远程登陆的Windows 10 系统是否没有设置密码 xff1f 没有密码的话设计机制是唤醒自动登陆 xff0c 所以会把远程挤下来 xff0c 设置密码就好了
  • Spring注解

    注解介绍 注解有两个作用 xff1a 标注和注入 标注 xff1a 类路径下自动扫描 xff0c 减少在xml中配置bean 例如 64 Component 64 Service注入 xff1a 自动装配 xff0c 需要类的地方直接加注解