java day18

发布于:2025-09-11 ⋅ 阅读:(20) ⋅ 点赞:(0)

继续学习,学习sringboot案例;
在这里插入图片描述
熟悉的三件套;比如做一个表,前端搭建好框架,然后返回给后端一个请求,说要这个表的数据吧;然后通过请求和规定的格式返回给后端之后,我们后端进行接收处理然后进行对数据库的操作,进行crud,然后,把数据库操作出来之后,你就可以根据你建立的表去筛查数据返回结果了;然后结果给后端层层封装返回,然后返回给前端;这样前端接收到了之后;就正常返回了,全栈就是全都得写;中间可能要解决跨域问题,还有一个并发量的问题啊,等等等等;

准备工程

每次做一个项目之前的准备工程

在这里插入图片描述
既然要接收前端请求,那就需要接收前端请求的依赖比如web,再一个就是比如后端工程需要调用数据库,那就需要数据库的依赖比如mybatis的依赖 mysql的驱动,再一个就是lombok的一个注解依赖;然后再对应准备所有的三层架构的代码;

中间的过程和包就不用再说了,就是三层架构的基本东西,还有一个如果你写了mapper层的东西,然后他找到了对应的xml文件,那你也可以进行对其的处理;但是有可能识别错误;因为同名,就有可能识别到别的地方去;
再一个是前端项目写完之后,部署就会部署到nginx平台;而后端就部署到tomcat服务器上了;
在这里插入图片描述
在这里插入图片描述
他们是通过接口文档进行响应;一般接口文档是根据产品需求做出来的,而且一般也是由后端人员去编写的;毕竟更多的是在于逻辑,而前端人员可能是会更少的参与其中;

restful接口风格规范

在这里插入图片描述
在这里插入图片描述
意思就是,前后本来就都能用get post,没人会特别规范场景使用,所以我们更好的是可以去了解把这些所有的请求定义成一个规范;比如就是rest风格;传统的开发文档里面的风格是全用get post;现在是定义成 url定位资源,http增删改查描述动作;增post 删delete 改put 查 get
在这里插入图片描述
在这里插入图片描述
返回结果类型;首先呢;需要定义一个返回结果,做成一个类;然后里面就写code响应码啊,msg响应信息啊,字符串啊,data是返回的数据,所以说返回这三个东西,给钱的看成功与否,返回的标题,返回的内容;这样更好分辨;
在这里插入图片描述
这确实就是一个很好的规范了;

在这里插入图片描述
开始做规范;需求文档看完之后再去看接口文档
在这里插入图片描述
然后接口文档里面吧;定义了所有的请求的东西; 相关的东西吧反正都在里面,我们需要跟着进行对照着敲;

这里,在请求路径里面吧,不是原来是可以写值的吗,现在可以进行对请求的限定;比如我们强烈要求,他必须是get或者post类型;比如给他get类型吧;就需要用到一个叫method的关键字,你加入进去之后呢,你就可以进行对请求方法的限定,不然,get请求或者post请求都能访问到,可能不太安全;在requestmapping后,可以增加路径的url,也可以增加方法的限定比如method;这个东西也很顾名思义了;
在这里插入图片描述
为了方便,你也可以直接吧注解名字改了,比如这个是requestmapping吧,可以改成getmapping
在这里插入图片描述
直接用getmapping的注解,可以直接进行限定;这就完全限定住了他必须是get请求下的东西;

他的一整个流程是,先看接口文档里面返回的是什么东西,然后确定自己怎么写, 先去定义一下返回的结果类型,在控制层进行测试返回;然后,开始写sql,一层层去写到mapper层,然后对其进行返回;看一下这个查出来的是个什么东西,然后封装到集合里面,然后就进行返回,既然之前这个接口通了,就直接在这个接口里面写要查询的东西和方法;

1.首先,建立result类,定义返回的结果类型;

package com.example.demo2.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    private Integer code;//响应码,1 代表成功; 0 代表失败
    private String msg;  //响应信息 描述字符串
    private Object data; //返回的数据

    //增删改 成功响应,定义几个方法:
    public static Result success(){
        return new Result(1,"success",null);
        //定义规则,走success方法的时候呢,我们就返回一个Result对象,
        // 对象里面code=1,msg=success,data=null  先试着调用返回
    }
    //查询 成功响应
    public static Result success(Object data){
        return new Result(1,"success",data);
    }
    //失败响应
    public static Result error(String msg){
        return new Result(0,msg,null);
    }
}

2.其次,定义控制层代码,可以进行对其正常的方法调用;把接口写通;

在这里插入图片描述
记录日志有什么作用;

基本crud

学会基本的crud就可以进入小公司进行实习了;因为毕竟也就是crud;
梳理思路,现在增,删,改,查,以及分页的思路,三层写完,一层层返回,然后一层层向上传递;
再一个就是要封装好统一的类,比如,result类,这个是返回给前端的统一模型;这是一个类,然后就是比如封装一个分页的类,这也是一个返回结果;
比如分页吧:
在这里插入图片描述

梳理一下现在欠缺的东西

1.异常处理、集合框架(List、Set、Map 等)、git,多线程编程以及 IO 流等知识。这些没有细学过,所有有些时候集合定义起来非常的麻烦;包括json序列化;
2.数据库事务、锁机制、存储过程等高级特性。非关系型数据库可以学习 Redis,用于缓存数据、实现分布式锁等场景
3.,Spring AOP(面向切面编程);基于 Spring 的 Spring Boot 框架,它简化了 Spring 应用的搭建和开发过程,能够快速构建独立运行的 Web 应用;另外,Spring Cloud 用于构建微服务架构,涵盖服务注册与发现、负载均衡、熔断器等组件。
4.javaScript 基本写法,包括 DOM 操作、事件处理、异步编程(如 Promise、async/await)等。
5.前端状态管理:当应用变得复杂时,学习 Vuex(针对 Vue.js)或 Redux(针对 React)等状态管理库,方便管理应用的全局状态。

坚持牛客啥的刷题拉满;
再一个是,项目的进度跟不上使用速度,给自己的强度压力不够大,就会少很多东西;用不到的时候,就永远想不起来;简单来说还是联系的太少,

在这里插入图片描述

集合

在这里插入图片描述

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建3个User对象
        User user1 = new User("Alice", 25);//一个user类里面有两个属性,名字和年龄
        User user2 = new User("Bob", 30);//然后创建了三个对象,相当于3个人
        User user3 = new User("Charlie", 35);
        
        // 使用List集合管理多个User对象
        List<User> userList = new ArrayList<>();//一个集合吧这个类对应的所有对象管理起来;这些人得到了统一,但是别忘了都是这个类的所以方法是  类型<user> 集合名 = new ArrayList<>();  也就是new一个集合出来,ArrayList就是数组,就是给一个数组类型的集合,分配空间,创建出来;然后这个集合去管理哪个类的对象呢?需要标识;然后就是集合名字;
        userList.add(user1); // 添加对象
        userList.add(user2);//用集合名字去添加一个个对象从第一个人加到最后一个人;
        userList.add(user3);
        
        // 遍历集合,批量操作对象,遍历这个人的数组:写法有不同;用这个类,创建一个对象:然后是这个list类型的集合  
        for (User user : userList) {
            user.sayHello(); // 调用每个对象的方法
        }
        
        // 统计集合大小
        System.out.println("总用户数:" + userList.size()); // 输出:居然可以直接用集合名字去输出集合大小;类似遍历了吧就,确实可以理解成数组的遍历,本身就是arraylist里面出来的分支;
    }
}

在这里插入图片描述

关于项目请求:
在这里插入图片描述
首先每个控制层最好都要有输出数据;首先是log.info的这种记录日志,本身他是有那种需要先创建对象的;他现在有了一个注解@slf4j后,就不用再创建对象了;可以直接就入

nacos

简单将nacos理解成所有配置的配置中心则可,就比如之前的mysql的数据库配置啊还是什么的;
在这里插入图片描述

箭头函数;
比如我写一个方法定义;
const 方法名字 = (参数)=>{函数体就行} 就这么记忆,比如一个参数就记得要加等号,再来一个方法体的时候就记得要加=>和{}

最近遇到个问题首先:有个下拉框的加载类似这种的问题存在;他比如

最近的公司基本上就是crud的集合,然后再公司直接学习也不太好,之前看了一次视频被骂了0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
哎,只能自己回去学;好没动力,疲惫;准备辞职!现在学的还远远不够,基本上不让你做核心业务;


网站公告

今日签到

点亮在社区的每一天
去签到