框架的注解

2023-11-18


一、mybatis

1.MyBatis的常用注解

@Insert:实现新增

@Update:实现更新

@Delete:实现删除

@Select:实现查询

@Result:实现结果集封装

@Results:可以与@Result 一起使用,封装多个结果集

@One:实现一对一结果集封装

@Many:实现一对多结果集封装

2.MyBatis的注解实现复杂映射开发

在这里插入图片描述
在这里插入图片描述

二、Spring

1.Spring原始注解

注解 说明
@Component 使用在类上用于实例化Bean
@Controller 使用在web层类上用于实例化Bean
@Service 使用在service层类上用于实例化Bean
@Repository 使用在dao层类上用于实例化Bean
@Autowired 使用在字段上用于根据类型依赖注入
@Qualifier 结合@Autowired一起使用用于根据名称进行依赖注入
@Resource 相当于@Autowired+@Qualifier,按照名称进行注入
@Value 注入普通属性
@Scope 标注Bean的作用范围
@PostConstruct 使用在方法上标注该方法是Bean的初始化方法
@PreDestroy 使用在方法上标注该方法是Bean的销毁方法

2.Spring新注解

注解 说明
@Configuration 用于指定当前类是一个 Spring 配置类,当创建容器时会从该类上加载注解
@ComponentScan 用于指定 Spring 在初始化容器时要扫描的包。 作用和在 Spring 的 xml 配置文件中的 <context:component-scan base-package=“com.itheima”/>一样
@Bean 使用在方法上,标注将该方法的返回值存储到 Spring 容器中
@PropertySource 用于加载.properties 文件中的配置
@Import 用于导入其他配置类

3.注解配置 AOP 详解

在这里插入图片描述

三、springMVC

1.@RequestMapping

作用:用于建立请求 URL 和处理请求方法之间的对应关系
位置:

  • 类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
  • 方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径

属性:

  • value:用于指定请求的URL。它和path属性的作用是一样的
  • method:用于指定请求的方式
  • ​params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样

2.@ResponseBody

  • 注解告知SpringMVC框架,方法返回的字符串不是跳转是直接在http响应体中返回
  • 在方法参数位置使用@RequestBody可以直接接收集合数据而无需使用POJO进行包装
@RequestMapping(value="/quick15")
    @ResponseBody
    public void save15(@RequestBody List<User> userList) throws IOException {
        System.out.println(userList);
    }

3.@RequestParam

当请求的参数名称与Controller的业务方法参数名称不一致时,就需要通过@RequestParam注解显示的绑定

@RequestMapping(value="/quick16")
    @ResponseBody
    public void save16(@RequestParam(value="name",required = false,defaultValue = "itcast") String username) throws IOException {
        System.out.println(username);
    }

4.@PathVariable

Restful风格的参数的获取,上述url地址/user/1中的1就是要获得的请求参数,在SpringMVC中可以使用占位符进行参数绑定。地址/user/1可以写成/user/{id},占位符{id}对应的就是1的值。在业务方法中我们可以使用@PathVariable注解进行占位符的匹配获取工作。http://localhost:8080/itheima_springmvc1/quick17/zhangsan

@RequestMapping(value="/quick17/{name}")
@ResponseBody
 public void save17(@PathVariable(value="name") String username) throws IOException {
        System.out.println(username);
 }

5.@RequestHeader

使用@RequestHeader可以获得请求头信息,相当于web阶段学习的request.getHeader(name)

属性如下:

  • value:请求头的名称
  • required:是否必须携带此请求头
@RequestMapping(value="/quick20")    
@ResponseBody    
public void save20(@RequestHeader(value = "User-Agent",required = false) String user_agent) throws IOException {        
System.out.println(user_agent);    
}

6.@CookieValue

可以获得指定Cookie的值

@CookieValue注解的属性如下:

  • value:指定cookie的名称
  • required:是否必须携带此cookie
 @RequestMapping(value="/quick21")
    @ResponseBody
    public void save21(@CookieValue(value = "JSESSIONID") String jsessionId) throws IOException {
        System.out.println(jsessionId);
    }

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

框架的注解 的相关文章

  • Java程序中的数组奇怪的行为[重复]

    这个问题在这里已经有答案了 我遇到了这个 Java 程序及其以意想不到的方式运行 以下程序计算 int 数组中元素对之间的差异 import java util public class SetTest public static void
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何为 Gson 编写自定义 JSON 反序列化器?

    我有一个 Java 类 用户 public class User int id String name Timestamp updateDate 我收到一个包含来自 Web 服务的用户对象的 JSON 列表 id 1 name Jonas
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • Java中未绑定通配符泛型的用途和要点是什么?

    我不明白未绑定通配符泛型有什么用 具有上限的绑定通配符泛型 stuff for Object item stuff System out println item Since PrintStream println 可以处理所有引用类型 通
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • KeyPressed 和 KeyTyped 混淆[重复]

    这个问题在这里已经有答案了 我搜索过之间的区别KeyPressedand KeyTyped事件 但我仍然不清楚 我发现的一件事是 Keypressed 比 KeyTyped 首先被触发 请澄清一下这些事件何时被准确触发 哪个适合用于哪个目的
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?

    我正在生成 Rest 端点 包括添加OpenAPI Swagger对生成的代码进行注释 虽然它对于基本类型运行得很好 但我在自定义类方面遇到了一些问题 现在我有很多自定义类的重复架构条目 使用 Schema 实现 MyClass class

随机推荐

  • 软实力-领导力

    领导力 领导力不是一蹴而就 需要不断训练和提炼 团队也是需要不断发展和规划 一个普通员工如何才能具备领导力呢 俗话说 天上不会掉馅饼 即使偶尔掉个馅饼下来 你的嘴也需要比别人的嘴张得大才能吃到 这 儿的嘴大可能包括你的能力和为这件事做的准备
  • echarts 图设置高度_Echarts 自适应宽高 vue

    思路 1 将图表包括在一个div中 该div设置了固定的宽高 可为百分比 2 由于不能直接设置rem进行适配 需要动态计算出 id chart 的高度 setChartHeight 根据自己需要调节图形大小 我的图形是放在 中 let ma
  • Golang获取当日00:00:00时间戳

    遇到好几次这个问题了 go的time里也没有这东西 百度也搜不到 很烦 干脆自己写一份 放到这里 year month day time Now Date location time LoadLocation Asia Shanghai 这
  • ESD 接触放电、空气放电

    1 接触放电主要针对的是半成品电子电气产品 或者是带金属外壳的成品 一般做接触放电主要是金属外壳 接触放电的放电头是尖头 2 空气放电主要是针对塑料外壳或者是金属外壳表面有绝缘漆的成品 空气放电的放电头是圆形头 3 一般接触放电或者空气放电
  • Python 之父 Guido van Rossum 称退休太无聊,正式加入微软搞开源!

    参考 https blog csdn net sinat 14921509 article details 109667079
  • 产品养成记

    参与感 pdf 从零开始做运营入门篇 张亮 pdf 结网 pdf 精益创业 pdf 区块链 定义未来金融与经济新格局 pdf 区块链 从数字货币到信用社会 pdf 人人都是产品经理 pdf 如何阅读一本书 pdf 上瘾 pdf 数据分析实战
  • 阿里云ACP级认证考试心得+过关经验

    正在准备阿里云ACP级认证考试的童鞋福利来啦 经过小编的软磨硬泡 终于从高分通过ACP云计算专业认证及大数据专业认证的大牛同事那里要来了考试心得 经验分享 直接看吧 认证考试简介 知己知彼知大纲 首先介绍一下ACP考试 阿里云认证类似于大家
  • flutter Text数字超出全部隐藏 解决方法

    如图 刚开始是这样的 问题原因 前面的 ID 与后面的文字存在间隙 解决方法 修改前 child Text ID 1114954321 textAlign TextAlign right maxLines 1 overflow TextOv
  • 切面打印日志时,参数序列化异常。It is illegal to call this method if the current request is not in asynchron

    1 AOP的日志拦截类中 抛出异常 2 代码如下 package com jimulian iwuxi common aop import com alibaba fastjson JSON import com jimulian iwux
  • 华为OD机试真题-增强的strstr-2023年OD统一考试(B卷)

    题目描述 C 语言有一个库函数 char strstr const char haystack const char needle 实现在字符串 haystack 中查找第一次出现字符串 needle 的位置 如果未找到则返回 null 现
  • Android最简洁的自动换行布局组件

    自动换行是一种布局特性 理所当然应该在布局组件中实现 我们基于ViewGroup实现了最简洁和稳定的自动换行布局组件AutoLinefeedLayout 该组件无需特别设置 只要将孩子塞给它 就会自动换行显示 无任何限制 源码如下 pack
  • [苹果开发者账号]01 使用Apple Developer app注册提示:未能验证证件

    1 登录https developer apple com 2 点击Learn More 3 使用自己的iPhone 到AppStore下载Apple Developer app Apple Developer app使用帮助 https
  • 【高效数据结构——位图bitmap】

    初识位图bitmap 位图 Bitmap 是一种用于表示和操作位 bit 的数据结构 它是由一系列二进制位 0 或 1 组成的序列 每个位都可以单独访问和操作 位图常用于以下情况 压缩存储 位图可以有效地存储大量的布尔值信息 每个位只占用一
  • CSS生成的迷宫

  • unity shader可视化工具——Shader Graph

    unity shader可视化工具 Shader Graph 前言 一 Shader Graph介绍 什么是Shader Graph 二 Shader Graph安装配置 1 新工程中使用Shader Graph 2 旧工程中使用Shade
  • 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践

    本文是对 NET Tutorial Deploy a microservice to Azure 的翻译和实践 入门级踩坑实践 k8s 大佬请回避 以免浪费您宝贵的时间 介绍 本文的目的是 通过使用 DockerHub 和 Azure Ku
  • 爬取招聘数据进行数据分析及可视化

    爬取招聘信息 对数据分析行业目前就业形式进行数据分析 大体流程如下 1 通过requests模块获取指定的某招聘信息 2 用pandas进行数据清洗 3 用matplotlib进行数据的可视化 导入需要用到的包 import request
  • python icon生成小工具

    在项目制作的过程中 有可能会出现一张图片需要有不同的大小去适应不同的设备和位置时 手动去一个个制作比较麻烦 本人通过网上学习粗略敲了一段python脚本 可能有考虑不周之处还请指出 文底有下载链接 old file new file new
  • 将代码上传到gitee

    1 新建gitee仓库 直接点击创建即可 2 到idea点击vcs gt Enable 3 项目点击右键 选中下列 4 选中项目右键 复制进去链接 5 项目右键 选中下列的文件 6 提交 push push 7 去gitee刷新文件已经上传
  • 框架的注解

    文章目录 一 mybatis 1 MyBatis的常用注解 2 MyBatis的注解实现复杂映射开发 二 Spring 1 Spring原始注解 2 Spring新注解 3 注解配置 AOP 详解 三 springMVC 1 Request