vue前后端分离后台管理系统(权限管理,登录),前端脚手架。对接后端基于SpringSecurity提供的后台接口

【数学建模技术】蝴蝶优化算法(BOA)及其在智能优化中的应用 蝴蝶优化算法(BOA)灵感来源于蝴蝶群体在迁徙过程中的行为。蝴蝶通过挥动翅膀与飞行方式的协调,进行寻找合适栖息地的优化过程。具体来说,蝴蝶在飞行时会根据个体之间的距离和局部最优解来调整自己的位置,从而达到整体群体优化的效果。该算法通过模拟蝴蝶的群体行为及个体之间的协作与竞争,在解空间中寻找最优解。蝴蝶优化算法(BOA)是一种强大的启发式优化算法,通过模拟蝴蝶群体的行为来解决复杂的优化问题。本文详细介绍了BOA的原理、应用实例以及改进策略,并通过代码实例展示了其在优化问题中的应用。 阅读详情

前言(很重要哦)

管理系统后端(java)请参考:https://blog.youkuaiyun.com/grd_java/article/details/121925792
本项目源码,码云:https://gitee.com/yin_zhipeng/vue-backstage-scaffolding.git
后台管理系统,一般都是内部人员使用,所以对界面要求不高,一般都使用模板开发。而前台系统,是给游客使用,要凸显个性,所以一般自己开发,不使用模板
  1. 如果你想从头到尾写,可以参考我的前台系统,每个细节都会讲到(看完完全可以自己写个模板):@TODO 日后再写
  2. 这里是后台管理系统,我们使用模板"PanJiaChen的模板简洁版"
  1. 简洁版:https://github.com/PanJiaChen/vue-admin-template
  2. 加强版:https://github.com/PanJiaChen/vue-element-admin
  1. 如果你GitHub进不去,可以到这里下载(码云):https://gitee.com/panjiachen/vue-admin-template.git
下载完成后,我们用它来当做项目,执行npm install --save 来下载相关依赖,然后通过npm run dev启动项目,最后浏览器查看项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目最终成果展示@TODO

一、概念和技术总结(重点,一定要搞懂)

这里总结项目中用到的前端知识,后面将不再赘述
  1. 大家最起码需要混个眼熟,后面代码中用到,不至于不知道这是干什么的(现在好多人,会用,但不知道为什么这么用,那你怎么优化和调优,调错呢?)
  2. 如果这里有你不会或没见过的东西(看了我的介绍不懂的),可以参考官方文档(说明你压根没学过Vue的相关知识,直接百度Vue官网就行)

1. vue

组件通信的方式(最基础的6种)
  1. props:适用于父子组件通信的场景,有一个容易混淆的点,如下:
  1. 如果父组件利用props给子组件传递数据时,传递的是一个函数,其实就是子组件给父组件传递数据(因为调用的是父组件的函数)。
  2. 如果传递的不是函数,那么才是真正的父组件给子组件传递了数据(子组件使用传来的数据).
  3. 可以指定父组件传输的类型,{type:Array},也可以指定默认值{type:Array,default:[]},也可以什么都不指定,[‘todos’]
  1. 自定义事件:适用于子组件给父组件传递数据, $ on、和$ emit
  2. 全局事件总线$bus:适用于任何场景,Vue.prototype. $bus = this;
  3. pubsub-js发布和订阅:适用于任何场景,但是Vue用的不多,一般React框架经常使用
  4. Vuex:适用于任何场景,用的非常多
  5. solt插槽:使用于针对结构(标签)的父子组件通信,常用的有默认插槽,具名插槽和作用域插槽

2. vue-admin-template模板文件解析

文件目录解析(注意:以下所有文件夹和文件,你自己写效果也一样,并不是必须在这个模板文件中才能用)
build 
	--index.js webpack配置文件[我们基本不用修改]
mock
	--mock数据文件夹[模拟一些假数据,mock.js实现],我们已经有后端和接口,基本不需要它
node_modules
	--项目依赖的模块
p ublic
	--存放ico图标,静态页面等静态资源,webpack打包时,不会编译此文件夹,原封不动打包到dist文件夹
src --我们写代码的地方
	--api文件夹:异步请求相关代码
	--assets文件夹:静态资源,一般是共享的,但是这里的静态资源,webpack打包是会编译
	--components文件夹:全局组件(非路由组件)
	--icons文件夹:svg矢量图
	--layout文件夹:放置一些组件和混入mixin
	--router文件夹:与路由相关的
	--store文件夹:vuex相关的
	--style文件夹:样式相关的
	--utils文件夹:工具类,其中request.js是axios的二次封装,比较常用
	--views文件夹:路由组件(不是全局组件)
App.vue
	--根组件
main.js
	--入口文件
permission.js
	--导航守卫,主要控制登录等相关事务
settings
	--对于项目的配置项(面向展示层),比如我们浏览器标签title显示什么,表头是否固定,导航栏logo是否显示

--剩下都是配置文件
.editorconfig
	--编程风格配置,比如缩进统一2个空格
-- 很重要的3个配置文件,可以通过webpack对外暴露的函数process获取
.env.development
	-- 开发环境的配置文件
.env.production
	-- 上线环境的配置文件
.env.staging
	-- 测试环境的配置文件

-- 重要但又不重要的3个配置文件
.eslintignore
	-- eslint检测的忽略文件,对于这些文件它会忽略,和我们没关系,我们压根不用eslint检测
.eslintrc.js
	-- eslint配置文件
.gitignore
	-- 只和作者有关系,上传git的忽略文件

-- 不常用的配置文件
.travis.yml
	-- 一些语言,开发版本的配置文件
babel.config.js
	-- babel的配置文件,常用于配置按需加载,比如element ui 按需加载
jest.config.js
	-- 测试框架的配置文件
LICENSE
	-- 版权声明的文件
-- 重点配置文件
jsconfig.json
	-- 配置src别名的文件
package.json
	-- 配置项目信息,运行参数,需要的依赖
postcss.config.js
	-- css配置文件,不同浏览器的兼容问题,可以在这里解决
vue.config.js
	-- 可以当成webpack.config.js,做代理等操作,我们经常使用这个文件
router文件夹index.js解析
  1. 首先,将路由模块挂载到Vue,然后将所有路由配置封装到常量constantRoutes中,然后回调函数创建路由,挂载了常量constantRoutes,并将函数放置到常量createRouter,随后,将createRouter()这个函数常量,换了个简单的名字router。最后对外暴露router和一个重置路由的函数resetRouter()
    在这里插入图片描述
  2. 这样做,我们可以直接通过$router操作和获取路由相关信息
jsconfig.json文件配置src别名为@解析

在这里插入图片描述

3个环境配置文件,可以通过webpack对外暴露的函数process获取,注意配置文件中内容,要以VUE_APP_*****开头(就和,java类名首字母要大写一样,大家要共同遵守)
  1. 我们看下开发环境的配置文件的配置内容,测试是否能正确获取
    在这里插入图片描述
  2. main.js文件中输出process和process.env,查看结果
    在这里插入图片描述
    在这里插入图片描述
console.log(process)
console.log(process.env)
utils中auth.js文件详解
  1. 这里封装了对于权限的功能函数
    在这里插入图片描述
store文件夹详解
  1. index.js文件,主要是掌控Vuex的大局,挂载到Vue
    在这里插入图片描述
  2. getters.js文件,封装getters操作,这里统一使用lambda表达式(箭头函数),使用了上面配置的modules中的app和user中内容,例如state.app.*****
//lambda一个参数的表示形式, 我们传递的参数就是a,箭头后面是执行逻辑
a =>  return a;

在这里插入图片描述

  1. user.js,主要提供登录的state,setter(action和mutations),并暴露他们.另外app.js、settings.js文件和user.js差不多
    在这里插入图片描述
    在这里插入图片描述

3. 异步相关,前后端交互

1. 当年PanJiaChen开发此模板时,还没有async函数(ES6的语法),所以使用传统Promise处理异步,我们后面统一将其改造为使用async函数,对于Promise和async请参考文章:https://blog.youkuaiyun.com/grd_java/article/details/105384601
2. request.js文件

在这里插入图片描述

4. 导航守卫

不知道的参考官方文档https://router.vuejs.org/zh/guide/advanced/navigation-guards.html
permission.js文件解析
  1. 此文件主要控制路由跳转的业务,像一个导航一样,可以理解为路由的拦截器
  2. 此文件主要完成的功能是,拦截一个路由跳转,判断用户是否有token,如果有,判断是否跳转路由为/login(登录路径),如果是,不允许跳转,从定向到"/"首页。如果不是登录路径,尝试获取用户信息,获取不到,尝试重新获取,重新获取失败,删除token,让用户进入登录页面重新登录
    在这里插入图片描述

5. 路由解析

记住一句话,所有路由都在找< router-view> ,所有子路由,都在找父路由组件中的< router-view>
整个路由进入首页后,为Layout组件,此组件分为3部分,sidebar导航栏,navbar顶部菜单栏,app-main内部二级路由,我们实际编写页面的地方

在这里插入图片描述

  1. 路由分析,当我们访问’/'它加载的是Layout组件,然后重定向到/dashboard,也就是二级路由,显示首页(显示到< router-view> 标签),其它的也是一样
    在这里插入图片描述
  2. Layout组件分析,一共有3个子组件
    在这里插入图片描述
  3. scrollbar在这里插入图片描述
  4. navbar
    在这里插入图片描述
  5. AppMain,可见< router-view> 标签在这个组件中,子路由会渲染到这里
    在这里插入图片描述

二、单点登录实现

登录页面直接使用模板提供的即可,我们对其样式进行一些修改,以让你知道如何对其自定义
  1. 更换背景图片,也可以使用@符号,只是需要加一个~前缀
  1. assets文件加放一张back.jpg图片
    在这里插入图片描述
  2. 修改css样式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1. 后端接口和响应结果分析

  1. 验证码:请求captcha这个url返回一张图片
    在这里插入图片描述
  2. 登录,Post请求,传输username,password,code3个参数,全部正确,登录成功,返回tokenHead和token,最终token规定格式为,tokenHead + “空格” + token,也就是Bearer eyJh…、成功状态码20000,失败状态码20001
    在这里插入图片描述
    在这里插入图片描述
  3. 当前登录用户信息,需要携带token,注意,token格式,以及header的name为authorization
    在这里插入图片描述

2. 解决跨域,以及请求头.几乎所有项目都需要的配置,背下来吧。

1. 首先,我们知道环境配置文件中,有VUE_APP_BASE_API这个东西,我们通过这个来规定请求路径,我们可以规定它.改完记得重启项目(我们是开发环境,所以修改.env.development文件)

在这里插入图片描述

2. 然后我们通过修改webpack的配置文件vue.config.js,配置跨域代理,主要位置,别写错位置,同样,配置完记得重启项目

在这里插入图片描述

    //配置代理跨域
    proxy: {
      [process.env.VUE_APP_BASE_API]: {
        target: `http://localhost:8001`, //修改后台接口地址
        // changeOrigin: true,
        pathRewrite: {
          ['^'+process.env.VUE_APP_BASE_API]: ''
        }
      }
    },
3. token请求头这种东西,直接配置到请求拦截器中就好了,request.js,注意token请求头的key必须为authorization(因为这是我们后端规定的,不是这个,后端没法正常解析)

在这里插入图片描述

// request interceptor
service.interceptors.request.use(
  config => {
    // do something before request is sent
    if (store.getters.token) {
      // let each request carry token
      // ['X-Token'] is a custom headers key
      // please modify it according to the actual situation
      config.headers['authorization'] = getToken()
    }
    return config
  },
  error => {
    // do something with request error
    console.log(error) // for debug
    return Promise.reject(error)
  }
)

3. 验证码展示

后端直接返回一张图片给我们,我们可以通过window.URL.createObjectURL(response)来获取图片的一个url地址
window.URL.createObjectURL用于创建一个新的对象URL,该对象URL可以代表某一个指定的File对象或Blob对象
  1. 响应类型必须是blob或file两种格式(responseType:‘blob’ 或者 responseType:‘file’)
效果如下

在这里插入图片描述

1. 首先,我们后端的验证码功能没有响应码,而我们使用的模板,在request.js中封装了请求拦截器和响应拦截器,致命的是,响应拦截器直接拦截所有响应码不是20000的响应
  1. 这样做的好处是,所有请求如果出错(响应码不是20000),统一进行错误逻辑,但这也同样是缺点。因为针对不同错误,我们希望有不同的反馈,而不是统一的一种
    在这里插入图片描述
  2. 所以我们要丰富其功能(一个if就搞定),对于不需要code状态码的响应,如果有响应体,表示响应成功,否则表示响应失败
    在这里插入图片描述
2. 封装api请求,注意一定要将响应类型设置为’blob’(responseType:‘blob’)
  1. api/user.js添加验证码接口
    在这里插入图片描述
export function captcha() {
  return request({
    url: 'captcha',
    method: 'get',
    responseType:'blob'
  })
}
3. login页面,login/index.js文件引入api,然后展示验证码
  1. 编写函数getImgCode,通过window.URL.createObjectURL(response)封装图片为url
    在这里插入图片描述
    在这里插入图片描述
    //异步获取验证码
    async getImgCode () {
      await captcha().then(response => {
        this.codesrc = window.URL.createObjectURL(response)
      })
    },
  1. 添加组件和样式,指定函数回调(单击事件),以实现单击图片,重新生成验证码
    在这里插入图片描述
    在这里插入图片描述
//html标签
      <el-form-item prop="code" class="code">
        <span class="svg-container">
<!--          <svg-icon icon-class="el-icon-s-flag" />-->
          <i class="el-icon-edit"></i>
        </span>

        <el-input
          class="code-input"
          ref="code"
          type="text"
          v-model="loginForm.code"
          placeholder="验证码"
          name="code"
          tabindex="2"
          auto-complete="on"
          @keyup.enter.native="handleLogin"
        />

      </el-form-item>
      <img :src="codesrc" class="code-img" @click="getImgCode">
//sass样式
  .code{
    width: 70%;
    float: left;
  }
  .code-img{
    float: right;
    width: 29.6%;
    //height: 100%;
  }

4. 单点登录,退出登录,根据后端API实现

效果如下
  1. 登录后,查看token
    在这里插入图片描述
    在这里插入图片描述
  2. 退出登录,查看token
    在这里插入图片描述
    在这里插入图片描述

1. api接口

api文件夹user.js文件,修改login,getInfo和logout三个接口

在这里插入图片描述

2. 路由组件编写登录函数逻辑

我们发现,此模板所有登录逻辑都在view/login/index.vue文件中的handleLogin方法中,对其进行修改

在这里插入图片描述

    handleLogin() {
      this.$refs.loginForm.validate(valid => {
        if (valid) {//发生表单验证后
          this.loading = true//登录按钮可用
          //调用action监听,user.js下面的login
          this.$store.dispatch('user/login', this.loginForm).then(() => {
            this.$router.push({ path: this.redirect || '/' })//成功跳转路由,触发permission.js导航守卫
            this.loading = false//异步过程中,阻止登录按钮的使用
          }).catch(() => {
            this.loading = false//异步过程中,依然阻止登录按钮使用
            this.getImgCode()//登录失败,刷新验证码
          })
        } else {
          console.log('error submit!!')
          this.getImgCode()//刷新验证码
          return false
        }
      })
    }

3. 修改store(vuex)异步逻辑

所有操作都在store/user.js中,我们需要修改login和getInfo以及logout

在这里插入图片描述
在这里插入图片描述

  // user login
  //处理登录业务
  async login({ commit },userInfo) {
    //解构出用户名和密码
    const { username,password,code} = userInfo;
    //异步调用/api/user文件下的login
    let result = await login({username: username.trim(),password:password,code:code});
    if (result.code==20000){
      //我们规定token为tokenHead + " " + token字符串
      const token = result.data.tokenHead+' '+result.data.token;
      //设置到state
      commit("SET_TOKEN",token);
      //通过auth.js文件的函数,设置到cookie
      setToken(token)
    }else{
      //登录失败
      return Promise.reject(new Error(result.message));
    }
  },

  // get user info
  async getInfo({ commit, state }) {
    //异步调用/api/user文件下的login
    let result = await getInfo(state.token);
    if(result.code === 20000){
      const { loginInfo } = result.data
      if (!loginInfo) {
        return reject('验证失败,请重新登录.');
      }
      const {username} = loginInfo;
      commit('SET_NAME',username);
      commit('SET_AVATAR','https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif')
    }else{
      //登录失败
      return Promise.reject(new Error(result.message));
    }
  },
  // user logout
  async logout({ commit, state }) {
    let result = await logout(state.token);
    if(result.code === 20000){
      removeToken() // must remove  token  first
      resetRouter()
      commit('RESET_STATE')
    }else{
      //退出登录失败
      return Promise.reject(new Error(result.message));
    }
  },

5. 流程总结

  1. this.$store.dispatch(‘user/login’, this.loginForm),调用login在这里插入图片描述
    在这里插入图片描述
  2. this.$router.push({ path: this.redirect || ‘/’ })//成功跳转路由,触发permission.js导航守卫
    在这里插入图片描述
  3. 导航守卫,根据token会调用getInfo获取用户信息,获取不到,会删除token,重载路由到登录页面
    在这里插入图片描述
    在这里插入图片描述

三、后台管理系统实现

由于篇幅原因,我将其放在另一篇文章中:https://blog.youkuaiyun.com/grd_java/article/details/122783691
本项目是一个知识图谱可视化程序,采用前后端分离技术实现,前端使用Vue,后端使用Flask.zip 本项目是一个知识图谱可视化程序,采用前后端分离技术实现,前端使用Vue,后端使用Flask 立即下载

相关推荐

基于Vue + ElementUI + SpringBoot + Shiro + MySQL 实现通用权限管理系统(模板)

dmin-solution 是一个权限管理系统模板. 前端基于 vue-element-admin 进行二次开发. 后端采用Java语言, 基于SpringBoot, Shiro, MySQL实现 | |前端权限控制 --> 动态从后端请求路由 权限控制 --> | |后端权限控制 --> 进行接口调用访问控制 | token存储 vue-element-admin 默认是读取body里面的token login({ commit }, userInfo) { const { username, password } = userInfo return new Promise((resolve, reject) => { login({ username: username.trim(), password: password }).then(response => { const { data } = response

写一个基于node.js的api后台管理系统(一)

要开发一个基于node.js的API后台管理系统,需要完成以下步骤:确定后台管理系统的需求和功能。你需要了解你的系统需要实现哪些功能,包括用户身份验证、数据的增删改查、API输出等。创建一个基本的node.js项目。可以使用node.js的命令行工具或者IDE(例如VS Code)来创建一个基本的node.js项目。配置项目所需的依赖项。需要安装一些npm包来支持项目的各种功能,例如Express.js用于构建Web应用程序,MongoDB驱动程序用于连接和操作MongoDB数据库等等。

小创果技术交流博客 3829

VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录

VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议

qq_34552942的博客 952

java vue 脚手架,我的springboot+vue前后端分离权限脚手架

我的springboot+vue前后端分离权限脚手架其实两周前就写好了,就是拖着一直没补个README文档。喜欢的同学帮我上个星星:biu。有bug请issue我。码云地址:码云biuBiu,boot和vue的连读而想到的名字。一个基于Spring Boot和Vue的Web开发脚手架,整合和最基础的RBAC权限控制,包括:菜单权限、按钮权限、接口权限。前端使用vue-cli,后端使用Spring ...

weixin_42302763的博客 463

dify离线部署

以bge-m3为例,本地部署bge-m3首先在一台能连网的linux服务器上(部署有ollama)创建想要保存模型的文件夹编辑ollama.service,配置ollama模型的保存路径添加模型存储地址将models目录设置属主,必须做,否则ollama无法启动重新加载配置文件并重启ollama测试ollama 运行是否正常最后拉取 bge-m3可在/opt/LLMModels/bge_m3/models目录下看到拉取得模型使用tar命令压缩文件夹。

weixin_42538734的博客 3068

告别FreeRTOS?手把手带你用NuttX在STM32F4-Discovery上跑起第一个Shell

本文详细介绍了如何在STM32F4-Discovery开发板上从FreeRTOS迁移到NuttX,并运行第一个Shell。NuttX以其完整的POSIX兼容性和模块化架构优势,特别适合复杂网络应用的开发。通过环境搭建、移植配置、调试技巧及POSIX开发实践,帮助开发者高效构建嵌入式系统。

weixin_42526417的博客 299

vue前后端分离后台管理系统(权限管理,登录),对接后端SpringSecurity,实现权限管理功能

文章目录一、重要知识点总结以及登录功能实现二、权限管理菜单的增删改查1. 路由配置2. 用户管理功能2.1 后端接口API介绍2.2 前端api接口

殷志鹏的博客 1万+

解密电商大促背后的智慧:LSTM与ARIMA模型的双剑合璧

举个例子,如果某东发现某款新推出的电子产品在促销前夕搜索量突然暴涨,虽然这个产品没有过去的销售记录,但LSTM模型可以结合用户对类似产品的行为模式、实时的市场反馈,迅速捕捉到这些变化,并预测这款产品在大促期间的需求会急剧上升。想象一下,如果预测不准确,备货不足,商品很快就卖光了,大量用户可能在促销期间买不到想要的商品,这不仅让用户失望,还会影响某东的品牌形象。这种情况就像我们看一部很长的电视剧,看得越久,前面的情节可能就越来越模糊,到最后有些关键的情节细节都忘了,影响了对整个剧情的理解。

小蒋聊技术 2091

168张图,万字长文,手把手教你开发vue后台管理系统

.markdown-body { color: rgba(56, 56, 56, 1); font-size: 15px; line-height: 30px; letter-spacing: 2px; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open...

程序员小明1024 2万+

Vue集成飞书前端JSSDK

文章目录前言<1>飞书前端JSSDK<2>使用步骤1.将JSSDK引入到VUE2.读入数据总结 前言 公司需要使用飞书软件,所以转战飞书开发,也是对新知识的探索与研究,飞书SDK也一直都在更新,路虽远,行必达。 <1>飞书前端JSSDK 1、官网地址:https://open.feishu.cn/document/uYjL24iN/uITO4IjLykDOy4iM5gjM 2、当前使用的飞书前端JSSDk的版本:1.5.4 <!-- 在html文档中 --&gt

A 1万+

【Unity实战篇】| 游戏轮播图效果,多种实现思路及完整教程

在众多游戏的主界面、商城、图鉴或关卡选择界面中,我们常常能看到轮播图的身影。 它以动态、直观的方式展示游戏角色、皮肤、成就或场景,不仅极大地提升了界面的美观度和交互性,还能高效地引导玩家聚焦于核心内容。 本篇文章将从零开始,一步步在Unity中构建一个功能完备、性能优良的游戏轮播图。 使用UGUI系统,通过代码驱动,实现包括自动轮播、手动拖拽、分页指示器、无限循环等核心功能。 无论是UI新手还是希望优化现有方案的开发者,这篇文章都将为你提供清晰的思路和完整的解决方案。

努力前行,总会成为自己心中的那道光 4万+

开发SpringBoot+Jwt+Vue的前后端分离后台管理系统VueAdmin - 前端笔记

1. 前言 而接下来,我们即将开发一个前后端分离的后台管理系统VueAdmin。权限框架采用spring security,然后相对来说权限模块开发就多点代码,也仅此而已了。对了前端的系统界面也是我们一步步开发的,参考学习B站的MarkHub跟着他的进度来进行的,具体详细的过程可以参考他的B站链接。 2. 安装vue环境,并新建Vue项目 前端我们依然选择的是Vue+ElementUI的组合,主要还是因为这个主流呀。针对Vue,如果还不熟悉的同学,建议去看看这个...

追光少年的博客 2420

uni-app - 实现全屏自适应且不变形背景大图,设置一张图片占满全屏(根据手机或电脑尺寸自动拉伸背景图像),用于页面是一张平铺的大图做背景的情况,全端兼容

uni-app,vue.js,微信小程序-设置背景图自适应手机屏幕尺寸,页面中的背景图片高度和宽度自适应,UNI-APP里如何设置背景图自适应手机屏幕尺寸,如何实现一个图片铺满整个页面,并且可以根据用户机型进行自动修正,自适应背景大图片官方教程,一个页面如何将图像放到背景上,纯CSS实现,设置背景图片占满全屏,3种CSS实现背景图片全屏铺满自适应的方式,uni-app中如何让图片不带高度的自适应,兼容uni-app全端,支持【纯】微信小程序项目使用,uni-app-实现全屏自适应且不变形背景大图

🏆 前端领域优质创作者 1万+

SpringBoot2.x炫酷吊炸天前后端分离的后台管理系统

点击▲关注 “爪哇笔记” 给公众号标星置顶更多精彩 第一时间直达项目简介一个基于Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Se...

不是太高的手的专栏 4455

milvus | 第 1 章:从“相似图片搜索”理解 Milvus 向量数据库

本文介绍了向量数据库Milvus的核心概念和基本架构。主要内容包括:1)向量数据库解决的是高维向量相似度检索问题,通过Embedding将非结构化数据转换为向量进行比较;2)Milvus作为分布式向量数据库,包含Proxy、Coordinator、QueryNode等多个组件协同工作;3)关键概念如Collection、Schema、Segment等构成了Milvus的数据组织方式;4)典型使用流程包括创建集合、插入数据、构建索引、加载数据和执行搜索五个步骤。文章为后续深入理解Milvus源码提供了基础知识

weixin_43674738的博客 133

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SpringBoot+Jwt+Vue的前后端分离后台管理系统

项目:SpringBoot+Jwt+Vue的前后端分离后台管理系统 项目来源:手把手教你开发SpringBoot+Jwt+Vue的前后端分离后台管理系统 总结: 用了总共不到一周的时间,跟着饰品 原因分析: 提示:这里填写问题的分析: 例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理

qq_42265220的博客 1849

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java Spring boot element ui activiti前后端分离,流程审批,权限管理框架

是什么? 使用springboot,activiti,mybatis,vue elementui开发的后台管理系统(包含权限管理、工作流等功能),真正前后端分离的微服务架构,经过很多项目实战、淬炼、软件开发公司主流技术的集大成者。 有什么用? 在此基础上可二次开发(OA、ERP、CRM、金融、网站后台)等管理系统 可以做APP、微信企业号、公众号的后台,json标准接口 系统功能完善(用户...

爱技术、爱生活 4万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

视频教程-springboot+Vue整合前后端分离权限后台管理系统-Java

springboot+Vue整合前后端分离权限后台管理系统 拥有八年的Jav...

weixin_34636810的博客 1578

推荐一款前后端的框架:简单快速构建后台管理系统

推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 给跪了!这套万人期待的 SQL 成神之路PDF,终于开源了 项目介绍 一款简单快速构建后台管理系统前后端的框架,基于 Spring Boot、 Spring Boot Jpa、 Spring Security、JWT、Redis...

xingduan5153的博客 1678

springsecurity前后端分离登录认证_SpringBoot+Jpa+SpringSecurity+Redis+Vue的前后端分离开源系统...

最近鹏哥在总结目前市面流行的开源项目,努力发现有价值的项目分享给大家。项目简介:eladmin基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持前端菜单动态路由。在 github 和 gitee 上看了很多热门...

weixin_39601657的博客 206

SpringBoot3+Vue3主流前后端分离系统

基于SpringBoot3、SpringSecurity、MybatisPlus、Vue3、TypeScript、Vite、ElementPlus、MySQL等技术栈实现的单体前后端分离后台管理系统;

xiaomayios的博客 876
上一篇: SpringIoC 源码深度剖析,先教看源码的方法,然后给出流程图,根据方法和流程图去看,这里会将重点总结出来
下一篇: vue前后端分离后台管理系统(权限管理,登录),对接后端SpringSecurity,实现权限管理功能
ydenergy_殷志鹏
博客等级 码龄7年 5885粉丝 543原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ydenergy_殷志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值