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

JavaWeb(基于SpringBoot开发)全总结(1)

1.使用maven

我们在写Javaweb时候,maven在其中起到了十分关键的作用

1.maven给我们Java项目提供了一个pom.xml文件,当我们需要导入一些jar包时候,我们只需要在xml文件中写入相关的依赖,然后idea就会自动为我们联网下载

2.由于使用不同开发工具开发出来的略有不同,导致不能够互通,所以国际规定,使用maven创建的项目为统一标准结构,也就是下图所示的结构

3.可以跨平台构建,如Linux,MacOS,Windows

2.HTTP协议

这个前面有做笔记

3.学会使用tomcat

是一个web服务器,我们可以先利用它来检验我们写的代码是否正确,再到网页中运行

4.请求响应

这个十分的重要,我们学会请求和响应

请求相对于更加繁琐,不过只要去记忆那些什么时候用什么注解即可

例如:传入的是路径参数,json格式的参数等等,根据不同的参数我们使用不同的注解

以下代码基本包括了所有的请求

@RequestMapping("/simpleParam")//下面一行这里不算是起别名,算是换名了,把UserName换成了name
    public String simpleParam(@RequestParam(name="name")String UserName, Integer age){
        System.out.println(UserName+":"+age);
        return "ok";
    }
    @RequestMapping("/simplePojo")
    public String simplePojo(User user){
        System.out.println(user);
        return "ok";
    }
    @RequestMapping("/arrayParam")
    public String arrayParam(String [] hobby){
        System.out.println(Arrays.toString(hobby));
        return "ok";
    }
    @RequestMapping("/listParam")
    public String listParam(@RequestParam List<String> hobby){
        System.out.println(hobby);
        return "ok";
    }
    @RequestMapping("/dateParam")
    public String dataParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime){
        System.out.println(updateTime);
        return "ok";
    }
    @RequestMapping("/jsonParam")
    public String jsonParam(@RequestBody User user){
        System.out.println(user);
        return "ok";
    }
    @RequestMapping("/path/{id}/{name}")
    public String pathParam(@PathVariable Integer id,@PathVariable String name){
        System.out.println(id+": "+name);
        return "ok";
    }

响应就相对简单了

我们一般使用的响应都是有固定的代码的,如下

@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);
    }
    //查询 成功响应
    public static Result success(Object data){
        return new Result(1,"success",data);
    }
    //失败响应
    public static Result error(String msg){
        return new Result(0,msg,null);
    }
}

5.分层解耦,三层架构

之前笔记有写到,之后还会出一个更加具体的笔记,去了解其中三层架构之间的关系

以及IOC容器

6.学习MySQL

这个在项目中起到十分重要的作用,它一般写在mapper数据层处

我们要学会使用动态sql

简单的sql语句我们可以直接使用idea中的注解进行开发

那复杂的我们就要写到对应的映射文件里面去了

映射文件有规定的结构格式,我们需要到官网进行复制,搜索mybatis中文网,下滑找到映射的sql格式

下面基础格式都有了,改掉一些内容就行了

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

7.mybatis

是一款很好的持久层(就是我们常说的数据层,dao层)的框架,简化了JDBC的开发

主要就是与数据库这方面进行打交道

还有我们写的案例里面的mapper层写的sql语句的新增,删除,等等操作,都是基于mybatis来实现的

记住每次创建后一定要记住改那个mybatis的设置,不然之后的导入依赖都会很慢

8.学会连接数据库

就是先到DG那里建立好我们要导入的数据库

然后就是对数据库进行设置

然后进入到下面这个界面

设置好user,password,url

最关键的是设置Database,这里直接填我们之前要导入已经创建好的数据库,然后点击Apply

再到spring boot中去设置,当我们遇到报错不要紧,我们直接再复制我们在DG上面写的sql语句,到idea那个数据库那里再运行一次,

点加号

点确定

大概率也会报错,不过不要紧

如果之后还没配好就直接复制爆红的英文去csdn上直接搜索

9.项目实战

学会前后端联调

运行项目之前要启动前端项目,如打开下面那个绿色的

学会阅读接口文档

我们必须学会阅读这个来写我们的项目代码,这个是让前后端联调起来的关键

学会在文件上传(使用阿里云OSS)

例如给项目导入图片文件

学会使用yml格式来配置文件

目前主流的配置文件格式,让人看起来清晰明了

学会登陆认证和登陆校验

主要是登陆校验

我们要学会主流的JWT令牌技术

学会使用拦截器拦截一切请求(若他人没登陆就会自动跳转到登入页面),避免他人不登录直接复制网址进入

学会使用事务

跟sql学的事务差不多

学会面向切面编程(AOP)


http://www.kler.cn/a/287911.html

相关文章:

  • 狼蛛F87Pro键盘常用快捷键的使用说明
  • lua实现雪花算法
  • transformers 操作篇
  • 六自由度双足机器人运动控制
  • 深入探索 Kubernetes 安全容器:Kata Containers 与 gVisor
  • 探索大规模语言模型(LLM)在心理健康护理领域中的应用与潜力
  • 藏头诗娱乐小程序源码
  • 如何在 Spring Boot 中创建自定义注解简化重复编码
  • 栈和队列
  • 一 lua学习笔记:概述
  • 第L2周:机器学习-线性回归
  • Ubuntu系统本地搭建WordPress网站并一键发布内网站点至公网实战
  • 20-22 - 打造专业的编译环境
  • Language Models are Few-Shot Learners
  • 【计算机网络复习资料】
  • hello树先生——红黑树
  • go中的并发处理
  • 书生大模型实战营(1)——InterStudio基础知识+Vscode SSH连接远程服务器+Linux基础指令
  • 深度解析MFT损坏:原因、恢复策略与预防措施
  • 知道哪些键值型存储数据结构?这些数据结构的时间、空间复杂度分别是什么?什么时候选⽤?
  • 【C++】C++ 多态的底层实现
  • Python进阶04-网络编程
  • 和字符串有关的经典OJ题——字符串的逆置和字符串的翻转
  • 【TPAMI 2024】Occlusion-Aware Self-Supervised Monocular 6D Object Pose Estimation
  • 音视频解码 AVIO内存输入模式
  • nexus 清理 docker 镜像