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

springboot编写简述01

项目结构
在这里插入图片描述

  • Users.java
package com.sust.entity;import java.io.Serializable;public class Users implements Serializable {private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

Serializable 是 Java 中的一个接口,它标识着一个类的对象可以被序列化。序列化是指将对象的状态转换为字节流的过程,以便可以在网络上传输或将其保存到文件中,或者在不同虚拟机中进行通信。反之,将字节流转换回对象状态的过程称为反序列化。

  • UsersService.java
package com.sust.service;import com.sust.entity.Users;public interface UsersService {public Users checkUsers(Users users);
}
  • UsersServiceImp.java
    package com.sust.service;import com.sust.entity.Users;import org.springframework.stereotype.Service;@Service//将当前类注入到spring容器// 通过使用@Service注解,Spring框架会在需要使用UsersServiceImp的地方自动注入它的实例,从而实现了解耦和依赖注入。public class UsersServiceImp implements UsersService{@Overridepublic Users checkUsers(Users users) {if(users!=null){if(users.getName()!=null&&users.getName().trim().equals("admin")){if(users.getPassword()!=null&&users.getPassword().trim().equals("password")){return users;}}}return null;}}

通过接口和实现类的方式可以实现对接口的调用。通过 UsersService 接口定义了一个名为 checkUsers 的方法,然后 UsersServiceImp 类实现了这个接口,并提供了 checkUsers 方法的具体实现。

当其他组件需要使用 checkUsers 方法时,它们可以直接依赖于 UsersService 接口而不需要关心具体的实现细节。通过依赖注入的方式,可以将 UsersServiceImp 实例注入到需要的地方,从而实现了对接口的调用,同时也实现了松耦合的设计。

@Service注解用于将一个类标识为服务(Service),并告知Spring框架将其实例化并管理,以便在应用程序中进行依赖注入、事务管理等操作。

  • UsersController.java
package com.sust.controller;import com.sust.entity.Users;
import com.sust.service.UsersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController // 注入spring容器
public class UsersController {@Autowired // 自动装配private UsersService usersService;/*编写验证@RequestMapping 映射请求的路径,前端使用此路径访问控制器业务方法https:// ... /check_Users*/@RequestMapping(value = "check_users")public Users check(Users users) {Users us = usersService.checkUsers(users);return us;}
}
  1. @RestController`:
    • 这是一个特殊的Spring注解,它结合了@Controller@ResponseBody注解。
    • @Controller用于将类标识为控制器,告诉Spring这是一个控制器类。
    • @ResponseBody用于将方法的返回值直接作为HTTP响应的内容,而不是视图名称,通常用于返回JSON数据或其他非HTML格式的数据。
    • 因此,@RestController用于标识一个类为RESTful风格的控制器,处理HTTP请求并返回数据,而不是渲染视图。
  2. @Autowired
    • 这是Spring框架的一个注解,用于自动装配(自动注入)依赖对象。
    • 在这段代码中,通过@Autowired注解将UsersService类型的依赖自动注入到UsersController类中,无需手动实例化UsersService对象。
  3. @RequestMapping
    • 这是一个用于映射HTTP请求路径的注解。
    • 在这个例子中,@RequestMapping(value = "check_users")将HTTP请求路径"/check_users"映射到了check方法上。
    • 当前端通过HTTP请求访问"/check_users"路径时,将会调用check方法,并执行其中的逻辑。

解耦是通过依赖注入实现的。在 UsersController 类中通过 @Autowired 注解将 UsersService 类型的依赖注入到了 usersService 字段中。这样一来,UsersController 类不需要直接实例化 UsersService 类,而是通过 Spring 框架自动注入的方式获取到了一个 UsersService 实例。

// 必须在有效 Spring Bean 中定义自动装配成员(@Component|@Service|…) 
@Autowired
UsersService us;

具体类似于:

在这里插入图片描述

相关文章:

  • linux的编辑安装
  • 基于JSP技术的社区疫情防控管理信息系统
  • 车载开发之预置无源码apk到Android系统(带so文件)
  • 【JavaScript】【分享】关于this
  • CSS实现一个雨滴滑落效果
  • 新奇css模板
  • Java/Golang:活用interface,增加程序扩展性
  • 堆和栈的空间利用率
  • 2024下《系统集成项目管理工程师》50个高频考点汇总!值得收藏
  • 怎么建设高性能多核DSP+FPGA实验室?一起来河北工程大学看看
  • HTML中Canvas关键知识点总结
  • 一场决定未来的战役,又是梦想起航的地方
  • 【玄机-应急平台】第六章 流量特征分析-蚂蚁爱上树
  • kubernetes负载均衡---MetalLB
  • STM32项目分享:智能家居语音系统
  • 「译」Node.js Streams 基础
  • css选择器
  • es的写入过程
  • Linux中的硬链接与软链接
  • log4j2输出到kafka
  • Promise初体验
  • windows下使用nginx调试简介
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • yii2权限控制rbac之rule详细讲解
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于web的全景—— Pannellum小试
  • 聚类分析——Kmeans
  • 聊聊hikari连接池的leakDetectionThreshold
  • 为视图添加丝滑的水波纹
  • 消息队列系列二(IOT中消息队列的应用)
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • # Panda3d 碰撞检测系统介绍
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #android不同版本废弃api,新api。
  • #在 README.md 中生成项目目录结构
  • $refs 、$nextTic、动态组件、name的使用
  • (二)WCF的Binding模型
  • (一)WLAN定义和基本架构转
  • (转)http协议
  • .mysql secret在哪_MySQL如何使用索引
  • .NET Core 版本不支持的问题
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .Net6使用WebSocket与前端进行通信
  • .Net多线程总结
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET中统一的存储过程调用方法(收藏)
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @ModelAttribute注解使用
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [ C++ ] 继承
  • [2023年]-hadoop面试真题(一)
  • [ai笔记9] openAI Sora技术文档引用文献汇总