springboot编写简述01

项目结构

  • Users.java
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
java 复制代码
package com.sust.service;

import com.sust.entity.Users;

public interface UsersService {
    public Users checkUsers(Users users);
}
  • UsersServiceImp.java
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{
        @Override
        public 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
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 实例。

java 复制代码
// 必须在有效 Spring Bean 中定义自动装配成员(@Component|@Service|...) 
@Autowired
UsersService us;

具体类似于:

相关推荐
观望过往1 分钟前
Spring Boot 集成 InfluxDB 2.x 完整技术指南
java·spring boot·influxdb
绝无仅有2 分钟前
大厂真实面试指南:解答核心问题与技术深度探讨
后端·面试·架构
JaguarJack15 分钟前
PHP 现代特性速查 写出更简洁安全的代码(中篇)
后端·php
Victor3561 小时前
Redis(104)Redis的最大数据量是多少?
后端
Victor3561 小时前
Redis(105)Redis的数据类型支持哪些操作?
后端
鬼火儿8 小时前
SpringBoot】Spring Boot 项目的打包配置
java·后端
cr7xin9 小时前
缓存三大问题及解决方案
redis·后端·缓存
摇滚侠9 小时前
Spring Boot3零基础教程,Spring Boot 应用打包成 exe 可执行文件,笔记91 笔记92 笔记93
linux·spring boot·笔记
间彧10 小时前
Kubernetes的Pod与Docker Compose中的服务在概念上有何异同?
后端
间彧10 小时前
从开发到生产,如何将Docker Compose项目平滑迁移到Kubernetes?
后端