当前位置: 首页 > news >正文

Spring笔记

Spring容器:
里面包含了许多的对象,相当于是一个对象仓库;在这里面所有的对象称为Bean,写代码的时候不需要手动new对象,而是让Spring帮助创建和管理。
@Autowired与@Resource:
作用一样,都是依赖注入(DI)。想使用仓库的某个Bean的时候,在变量的头上贴上这个注解,Spring会自动的从仓库中将这个Bean拿出来。
找东西方式不一样:
前者是Spring框架自带的注解,按照类型(Type)找;缺点:如果一个接口有两个实现类,就会报错,必须搭配@Qualifier("")告诉具体名字。设置成@Autowired(required = false)能避免报错,Spring在找不到的时候会把这个变量赋值为null,程序继续正常启动。
后者是Java EE标准自带注解,默认按名字(Name)找,去仓库找完全匹配的Bean,找不到就会按照类型找。
required = false:
搭配@RequestParam(value = "title",required = false)String title,为true的时候,当前端发起HTTP请求时如果没传title参数,SpringMVC直接扔出400 Bad Request错误,;改成false,前端就算没传这个参数,请求也能进来,只是title会被赋值为null。虽然false能防止程序崩溃,但是也埋下了一个雷就是NullPointerException(空指针异常)。在使用required = false时,在后面真正使用这个变量之前,必须加上if(xxx != null)的判空逻辑。
@Component:
加在类头上,表示将这个类实例化成对象并放到IOC仓库中;一切Spring Bean注解的老祖宗
和@Controller@Service@Repository注解是父子关系;为了代码更清晰,派生出了这三个注解
@Controller:
告诉Spring框架这个类是一个控制层组件,专门负责接待来自浏览器的HTTP请求;
在类上加上这个注解,Spring就会监听发给服务器的网络请求,比如当用户在浏览器访问/publish时,这个注解就会把这个请求派给带有@PostMapping("/publish")的方法去处理
接受用户请求,然后把活给业务层,最终决定给用户展示哪个界面,比如return "publish",就是把渲染后的页面端给用户。
@Repository:
往仓库中放东西,在一个类头上加上这个注解时,相当于告诉Spring,把这个类实例化成Bean,存放到仓库中。(通常是在跟数据库打交道的Mapper或DAO类,身份是数据访问层)
处理把类变成Bean,还可以做异常转换,不同数据库报错不一样,该注解可以把晦涩难懂的底层数据库异常统一翻译成Spring自带的异常体系(DataAccessException)
@Service:
业务逻辑层,写核心代码
Controller拿到数据后,会通过@Autowired或@Resource把Service叫过来,把数据交给他处理
@RequestParam:
从HTTP请求中提取具体的数据,自动赋值给Java方法的参数
用户在网页的表单中输入标题和内容并提交后,会将这些数据打包成HTTP报文。@RequestParam(value = "title" ) String title,从报文中找到叫title的数据提取出来,放到后面的title字符串变量去
@GetMapping(/"publish"):
索要一张空白申请表
点击一个查看按钮,可以看到相应的页面内容
处理HTTP的GET请求,核心是获取
GET请求参数时,参数往往直接挂在网址后面,不安全,也不能传太大数据
@PostMapping(/"publish"):
提交申请好的申请表
处理HTTP的POST请求,核心是提价/创建
页面中填写完内容,提交,是POST请求
POST请求的数据藏在HTTP请求的请求体(Body)里,网址上看不见,相对安全,而且可以传输大段文本甚至文件,比如上传图片
RESTful API:
接口设计的风格和规范
传统:GET/getUser?id=1
RESTful:GET/users/1
1.URL定位资源(只用名词)
2.HTTP动词描述操作:GET查询POST新增PUT修改/更新全量数据DELETE删除
3.无状态与JSON交互:每一次请求都必须包含服务器理解该请求所需的全部信息
Token:
一段毫无规律的加密字符串,用来证明你是谁以及有没有权限
Token通常放在HTTP请求的请求头(Header)里的Authorization字段中,相比于传统Session存在服务器内存里,Token存在客户端,让服务器变为"无状态"的

http://www.jsqmd.com/news/486927/

相关文章:

  • 安卓转iOS游戏存档迁移全攻略:以辐射避难所为例(附iMazing详细操作)
  • Z-Image-Turbo-rinaiqiao-huiyewunv保姆级教程:gc.collect+empty_cache防卡死配置
  • Self-Attention中的MASK技巧:如何避免Transformer模型中的信息泄露问题
  • Youtu-ParsingCI/CD集成:Git变更→自动测试→supervisor更新一键发布
  • 从本地到云端:在阿里云ECS上构建YOLOv5实时检测服务的全链路实践
  • 口语写完没人改?多次元托福APP的AI私教24小时在线等你 - 速递信息
  • Spring应用内存泄漏实战:如何用MAT揪出那个偷偷吃内存的ApplicationContext
  • CYBER-VISION零号协议一键部署后的模型微调实战教程
  • 手机里装5个APP才能考托福?多次元托福APP一站式搞定听说读写 - 速递信息
  • LSTM从理论到实战:图解门控机制,推导梯度流,玩转时序预测
  • Qwen2.5-VL-7B-Instruct实战案例:电商直播截图→爆款话术提炼→竞品对比
  • AI绘画效率提升!Qwen-Image-2512-ComfyUI批量出图教程,省时省力
  • Verilog期末考试突击指南:从半加器到60进制计数器的实战代码解析
  • ChromeFK插件推荐系列八:书签管理效率革命
  • Janus-Pro-7B效果展示:汽车外观图→型号识别→竞品对比表+宣传图生成
  • 浙江润鑫大件运输轴线车汽车超载检测仪 :重载检测更精准,大件运输更安全 - 速递信息
  • 提升wp编写效率:快马平台AI工具自动生成代码与图表,专注核心解题逻辑
  • ERNIE-4.5-0.3B-PT快速部署教程:vLLM+Chainlit 5分钟搭建文本生成服务
  • 【VTK实战指南-07】三维医学图像处理全流程:从切片展示到多模态融合
  • 2026 年国内塑料托盘优质厂家综合甄选 行业实力解析与推荐 - 深度智识库
  • 「权威评测」2026年国内五大塑料管帽厂家实力推荐,谁才是靠谱之选? - 深度智识库
  • 校园食堂运营优化指南:基于Tableau消费时段热力图的决策分析
  • 基于Java的HY-Motion 1.0企业级API开发
  • DailyTxT 加密日记 + cpolar,随时随地写私密日记
  • CentOS7 内网环境一键升级 OpenSSH v10.2p1 RPM 包实战指南
  • 基于天空星STM32F407的雨滴传感器模块驱动移植与ADC/GPIO应用实战
  • 老旧Mac设备的系统升级:使用开源工具突破硬件限制的技术指南
  • Wireshark网卡列表消失?5分钟搞定NPCAP驱动加载问题(附详细步骤)
  • 迎战2026新托福!多次元托福APP,你的AI智能备考核心引擎 - 速递信息
  • Phi-3-Mini-128K代码实例:扩展支持Markdown渲染与代码块高亮显示