【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~

【项目专栏】
【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建
【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

java+vue+微信小程序项目】从零开始搭建——健身房管理平台

  • 后端处理跨域
    • 1.处理方式(3种)
    • 2.跨域处理
  • 登录模块
    • 1.界面设计
    • 2.接口设计
  • 前端登录组件
    • 1.删除不需要的组件
    • 2.连接后端测试
    • 3.全局样式
    • 4.element ui
    • 5.引入iconfont
    • 6.引入axios
    • 7.登录组件(Login.vue)
      • (1)模板部分(template标签)定义了组件的结构和布局
      • (2)脚本部分(script标签)定义了组件的行为
      • (3)样式部分(style标签)
      • (4)测试登录组件
  • 后端登录功能
    • 分层架构
    • 1.mysql数据库
      • (1)新建数据库
      • (2)user实体
      • (3)创建user表
      • (4)插入数据
    • 2.数据访问层
      • (1)UserDao.java
        • 添加@MapperScan注解
      • (2)UserMapper.xml
      • (3)User.java
    • 3.业务逻辑层
      • (1)LoginService.java
      • (2)LoginServiceImpl.java
    • 4.表现层
      • (1)LoginController.java
  • 前端修改登录组件
  • 验证登录模块
  • 知识点:springboot分层架构
  • 工具:IDEA修改get、set、tostring方法快捷键修改
  • 工具:vue代码风格
    • 原本的代码风格
    • 格式化后的代码风格(shift+alt+f)
    • 步骤

后端处理跨域

1.处理方式(3种)

在 Spring Boot 中处理跨域请求有几种方式,下面是其中几种常用的方式:

1.使用 @CrossOrigin 注解:可以在控制器类或方法上使用 @CrossOrigin 注解来启用跨域支持。通过指定允许跨域的源地址、请求方法、头部信息等,可以实现对特定请求的跨域支持。示例代码如下:

@CrossOrigin(origins = "http://example.com", methods = RequestMethod.GET)
@RestController
public class MyController {// 控制器方法
}

2.自定义 Filter:可以编写一个自定义的 Filter,在其中添加响应头信息来实现跨域请求的支持。首先创建一个实现了 javax.servlet.Filter 接口的类,然后在 doFilter 方法中添加响应头信息。在 Spring Boot 中,可以通过配置类将该 Filter 注册到应用程序中。示例代码如下:

@Component
public class CorsFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {HttpServletResponse httpResponse = (HttpServletResponse) response;httpResponse.setHeader("Access-Control-Allow-Origin", "http://example.com");httpResponse.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE");httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");chain.doFilter(request, response);}
}

3.全局配置跨域支持:可以通过在 Spring Boot 的配置文件中添加跨域相关的配置项来实现全局的跨域支持。在 application.properties 或 application.yml 文件中添加如下配置:

# application.properties
spring.webmvc.cors.allowed-origins=http://example.com
spring.webmvc.cors.allowed-methods=GET,POST,PUT,DELETE
spring.webmvc.cors.allowed-headers=Content-Type, Authorization

2.跨域处理

util——>WebConfig.java
在这里插入图片描述

package com.hui.util;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;//全局配置类,配置跨域请求
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry//允许访问的路径.addMapping("/**")//配置请求来源.allowedOrigins("http://localhost:8080")//允许跨域访问的方法.allowedMethods("GET","POST","DELETE","PUT","OPTION")//允许携带参数.allowCredentials(true)//请求头//.allowedHeaders()//最大效应时间.maxAge(3600);}
}

登录模块

1.界面设计

在这里插入图片描述

2.接口设计

  • 接口地址:localhost:9999/login
  • 返回格式:json
  • 请求方式:post
参数名解释
username账号
password密码
  • 登录接口返回参数说明
参数名解释
idID 号
username账号
password密码
phoneNumber电话号码
role角色
state状态
flag标志登录是否成功

前端登录组件

1.删除不需要的组件

app.vue

<template><div id="app"><router-view /></div>
</template><style></style>

router——>index.js

import Vue from "vue";
import VueRouter from "vue-router";
import TestView from "../views/TestView.vue";Vue.use(VueRouter);const routes = [{path: "/",name: "TestView",component: TestView,},];const router = new VueRouter({routes,
});export default router;

2.连接后端测试

views——>TestView.vue

<template><div><button @click="click">test测试</button></div>
</template><script>import axios from 'axios';export default {name: "TestView",components: {},methods: {click(){axios.get('http://localhost:9999/test').then((res)=>{console.log(res);}).catch((err)=>{console.log(err)})}}
};
</script>

核心代码讲解

click(){axios.get('http://localhost:9999/test').then((res)=>{console.log(res);}).catch((err)=>{console.log(err)})
}

这段代码是使用 JavaScript 编程语言编写的,其中使用了一些语法和函数库。

  1. axios.get('http://localhost:9999/test'):这是使用 Axios 库发送 HTTP GET 请求的语法。Axios 是一个基于 Promise 的 HTTP 客户端,它提供了简洁的 API 来执行异步请求。在这里,我们使用 Axios 的 get() 方法发送一个 GET 请求到指定的 URL。

  2. .then((res) => { console.log(res); }):这是 Promise 的 then() 方法的使用,用于注册成功的回调函数。当请求成功完成时,服务器的响应会作为参数传递给这个回调函数,并将其打印到控制台上。

  3. .catch((err) => { console.log(err); }):这是 Promise 的 catch() 方法的使用,用于注册失败的回调函数。当请求过程中发生错误时,错误信息会作为参数传递给这个回调函数,并将其打印到控制台上。

在这里插入图片描述
测试成功
在这里插入图片描述

3.全局样式

1.创建文件global.css
assets——>css——>global.css

/* 全局式样 */
html,body,#app{height: 100%;margin: 0px;padding: 0px;
}

2.引入全局样式
项目入口文件main.js

import './assets/css/global.css'  // 添加全局样式
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import './assets/css/global.css'  // 添加全局样式Vue.config.productionTip = false;new Vue({router,store,render: (h) => 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 图书馆选座小程序源码

开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索房间&#xff0c;轮播图&#xff0…

wordpress安装之Linux解压缩安装

本次教程是为了让大家少走弯路&#xff0c;可以更直观的去认识我们不懂的知识面。 首先我们安装解压缩的软件 命令如下&#xff1a; yum install -y unzip 上一篇我们讲到传输文件了 这篇我们把传输过来的压缩包解压并进行安装。follow me&#xff01; 我们输入命令 unzi…

FDM3D打印系列——天秤座黄金圣斗士模型制作全过程视频

FDM打印天秤座黄金圣斗士全过程视频 大家好&#xff0c;我是阿赵。   这次带来的是天秤座黄金圣斗士模型的3D打印加后期加工的全过程。其实打印的过程之前都已经介绍过了&#xff0c;不过有朋友说想实际看看整个制作过程是怎样&#xff0c;所以我录了这个视频。   上完色之…

测试Centos上用Gunicorn启动的Django-Web服务在Django源文件有改变的情况下能否自动重载最新源码下的web服务

01-先上传最新的源码文件 参考博文 https://blog.csdn.net/wenhao_ir/article/details/134762966 进行 02-先在Django直接开web服务下修改源码测试 这是没有问题的&#xff0c;会自己重置。 03-开启gunicorn服务 cd /djangoproject/mmdj01/ gunicorn -c /djangoproject/mm…

【开源】前后端分离的在线考试系统,支持多种部署方式

在线考试系统 https://download.csdn.net/download/mo3408/88593116 在线考试系统是一种利用网络技术&#xff0c;实现在线出题、答题、阅卷、成绩查询等一系列考试活动的系统。它不受地理位置限制&#xff0c;可以实现远程考试&#xff0c;大大提高了考试的效率和便利性。此…

Spring MVC学习随笔-控制器(Controller)开发详解:接受客户端(Client)请求参数

学习视频&#xff1a;孙哥说SpringMVC&#xff1a;结合Thymeleaf&#xff0c;重塑你的MVC世界&#xff01;&#xff5c;前所未有的Web开发探索之旅 第三章、SpringMVC控制器开发详解 3.1 核心要点 &#x1f4a1; 1. 接受客户端&#xff08;client&#xff09;请求参数[讲解] 2…

Docker的数据持久化;Docker网络;Dockerfile编写

Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b; 文章目录 Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b;**Docker的数据持久化**1&#xff09;将本地目录映射到容器里2&#xff09;数据卷3&#xff09;将…

ARM架构安装RabbitMQ

1.查看centos内核版本 uname -a uname -r2.安装之前的准备工作 安装RabbitMQ必装Erlang(RabbitMQ官网添加链接描述) 2.1.Erlang简介 Erlang是一种通用的面向并发的编程语言&#xff0c;它由瑞典电信设备制造商爱立信所辖的CS-Lab开发&#xff0c;目的是创造一种可以应对…

Qt将打印信息输出到文件

将打印信息&#xff08;qDebug、qInfo、qWarning、qCritial等&#xff09;输出到指定文件来以实现简单的日志功能。 #include "mainwindow.h" #include <QApplication> #include <QLoggingCategory> #include <QMutex> #include <QDateTime>…

【Pytorch】Visualization of Feature Maps(4)——Saliency Maps

学习参考来自 Saliency Maps的原理与简单实现(使用Pytorch实现)https://github.com/wmn7/ML_Practice/tree/master/2019_07_08/Saliency%20Maps Saliency Maps 原理 《Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps》&…

vue权限管理解决方案

一. 什么是权限管理 权限控制是确保用户只能访问其被授权的资源和执行其被授权的操作的重要方面。而前端权限归根结底是请求的发起权&#xff0c;请求的发起可能有下面两种形式触发 页面加载触发页面上的按钮点击触发 总体而言&#xff0c;权限控制可以从前端路由和视图两个…

深度学习记录--广播(Broadcasting)

什么是广播&#xff1f; 广播(Broadcasting)&#xff0c;在python中是一种矩阵初等运算的手段&#xff0c;用于将一个常数扩展成一个矩阵&#xff0c;使得运算可行 广播的作用 比如&#xff1a; 一个1*n的矩阵要和常数b相加&#xff0c;广播使得常数b扩展成一个1*n的矩阵 …

zemax之初级像差理论与像差校正——慧差

通过上节介绍&#xff0c;我们已经知道在轴上视场产生的球差是旋转对称的像差。在进行光学系统设计时&#xff0c;同时需要保证轴上物点和轴外物点的成像质量。轴外物点成像时会引入轴外像差&#xff0c;即轴外视场产生的慧差&#xff08;coma aberration&#xff09; 1.慧差概…

申请Azure学生订阅——人工验证

一&#xff1a;联系客服进行人工验证 点击 Services Hub 填写资料申请人工验证 点击 Azure - Sign up 进行学生验证 二&#xff1a;与客服的邮件沟通的记录 ​​​​一、结果&#xff08;输入客服给的验证码后&#xff0c;笔者便得到了学生订阅&#xff09;&#xff1a; 二…

k8s中批量处理Pod应用的Job和CronJob控制器、处理守护型pod的DaemonSet控制器介绍

目录 一.Job控制器 1.简介 2.Jobs较完整解释 3.示例演示 4.注意&#xff1a;如上例的话&#xff0c;执行“kubectl delete -f myJob.yaml”就可以将job删掉 二.CronJob&#xff08;简写为cj&#xff09; 1.简介 2.CronJob较完整解释 3.案例演示 4.如上例的话&#xf…

[原创][2]探究C#多线程开发细节-“线程的无顺序性“

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delph…

golang Pool实战与底层实现

使用的go版本为 go1.21.2 首先我们写一个简单的Pool的使用代码 package mainimport "sync"var bytePool sync.Pool{New: func() interface{} {b : make([]byte, 1024)return &b}, }func main() {for j : 0; j < 10; j {obj : bytePool.Get().(*[]byte) // …

Java基础-----Date类及其相关类(一)

文章目录 1. Date类1.1 简介1.2 构造方法1.3 主要方法 2. DateFormat 类2.1 简介2.2 实例化方式一&#xff1a;通过静态方法的调用2.2 实例化方式二&#xff1a;通过创建子类对象 3. Calendar类4. GregorianCalendar 1. Date类 1.1 简介 java.util.Date:表示指定的时间信息&a…

vivado实现分析与收敛技巧7-布局规划

关于布局规划 布局规划有助于设计满足时序要求。当设计难以始终如一满足时序要求或者从未满足时序要求时 &#xff0c; AMD 建议您执行布局规划。如果您与设计团队协作并且协作过程中一致性至关重要&#xff0c; 那么布局规划同样可以发挥作用。布局规划可通过减少平均布线延…

Redis-安装、配置和修改配置文件、以及在Ubuntu和CentOS上设置Redis服务的开机启动和防火墙设置,以及客户端连接。

目录 1. Redis简介 2. 离线安装 2.1 准备工作 2.2 解压、安装 2.3 修改配置文件 2.4 redis服务与关闭 2.5 redis服务的开机启动 2.5.1 Ubuntu上的配置 2.5.2 centos上的配置 3. 在线安装 4. 设置防火墙 5. 客户端连接 1. Redis简介 Redis 是完全开源免费的&#x…