Vue CLI 4与项目构建实战指南


title: Vue CLI 4与项目构建实战指南
date: 2024/6/9
updated: 2024/6/9

excerpt:
这篇文章介绍了如何使用Vue CLI优化项目构建配置,提高开发效率,涉及配置管理、项目部署策略、插件系统定制以及Webpack和TypeScript的深度集成技巧。

categories:

  • 前端开发

tags:

  • Vue CLI
  • 优化构建
  • 配置管理
  • 项目部署
  • 插件系统
  • Webpack
  • TypeScript集成

在这里插入图片描述

第一部分:Vue CLI 4入门

第1章 Vue CLI概述

Vue CLI的作用和优势

Vue CLI(Vue.js Command Line Interface)是官方提供的一个标准工具,用于快速搭建Vue项目架构。它具有以下作用和优势:

  • 标准化开发流程:Vue CLI提供了一套标准的开发流程和项目结构,有助于团队协作和项目维护。
  • 快速原型开发:通过Vue CLI可以快速创建项目原型,提高开发效率。
  • 丰富的插件生态:Vue CLI拥有丰富的插件,可以轻松集成各种功能,如路由、状态管理、打包优化等。
  • 易于定制和扩展:Vue CLI支持对构建配置的深度定制,满足不同项目的需求。

Vue CLI的发展历程

Vue CLI自Vue.js诞生以来,就作为官方推荐的脚手架工具,随着Vue.js的发展而不断迭代。从最初的Vue CLI 2到Vue CLI 3,再到现在的Vue
CLI 4,它一直在优化项目结构和构建配置,提高开发效率和用户体验。

Vue CLI 4的主要特性

Vue CLI 4带来了以下主要特性:

  • 更快的构建速度:利用Webpack 4和缓存优化,提高构建速度。
  • 零配置:默认配置即可满足大多数项目的需求,无需额外配置。
  • 插件系统:通过插件系统,可以轻松集成Vue Router、Vuex等Vue生态系统中的其他工具。
  • 图形化界面:提供了Vue UI,一个图形化的管理界面,用于创建和管理项目。
第2章 环境准备与安装

Node.js和npm的安装与配置
Vue CLI 4需要Node.js环境,因此首先需要安装Node.js。Node.js通常与npm(node package manager)一同安装。可以从
cmdragon’s Blog Node.js官网下载并安装最新版本的Node.js。

  • 确保安装Node.js版本在12以上。
  • 安装完成后,在命令行中执行node -vnpm -v,检查安装是否成功。

Vue CLI 4的安装

Vue CLI 4可以通过npm全局安装:

npm install -g @vue/cli
# 或者
yarn global add @vue/cli

Vue CLI 4的升级

如果需要升级Vue CLI 4到最新版本,可以使用以下命令:

npm update -g @vue/cli
# 或者
yarn global upgrade --latest @vue/cli

第3章 创建和管理Vue项目

使用Vue CLI 4创建新项目

使用Vue CLI 4创建新项目,可以执行以下命令:

vue create project-name

在命令执行过程中,CLI会提供一系列选项,包括预设配置、Vue版本选择、添加插件等。

项目的目录结构和文件解释

Vue CLI 4创建的项目具有以下目录结构:

project-name/
│
├── node_modules/ # 项目依赖
├── public/        # 公共文件,如index.html
│   └── index.html
├── src/           # 源代码目录
│   ├── assets/    # 静态资源
│   ├── components/ # Vue组件
│   ├── App.vue    # 根组件
│   └── main.js    # 入口文件
├── .gitignore     # Git忽略文件
├── babel.config.js # Babel配置文件
├── package.json   # 项目配置文件
└── vue.config.js  # Vue项目配置文件

项目的配置和管理

项目的配置主要通过vue.config.js
文件进行。该文件提供了对Webpack配置的细粒度控制。此外,还可以通过环境变量来控制不同环境下的项目配置。项目的管理主要包括项目的启动、构建和测试等,这些都可以通过package.json
中的scripts字段来配置。
AD:等你探索

第二部分:Vue CLI 4高级配置

第4章 个性化项目配置

修改项目配置文件(vue.config.js)

vue.config.js是Vue CLI项目的可选配置文件,如果项目的构建系统和webpack配置满足你的需求,那么你不需要这个文件。但如果需要自定义配置,可以通过这个文件来修改。

例如,以下是一个简单的vue.config.js文件,它修改了基本的webpack配置:

module.exports = {
  // 基本路径
  publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/',
  // 构建时的输出目录
  outputDir: 'dist',
  // 放置静态资源的目录
  assetsDir: 'static',
  // html的输出路径
  indexPath: 'index.html',
  // 文件名哈希
  filenameHashing: true,
  // eslint-loader 是否在保存的时候检查
  lintOnSave: process.env.NODE_ENV !== 'production',

  // 是否使用包含运行时编译器的Vue核心的构建
  runtimeCompiler: false,

  // 默认情况下 babel-loader 忽略其中的所有文件 node_modules
  transpileDependencies: [],

  // 生产环境 sourceMap
  productionSourceMap: false,

  // 跨域设置
  devServer: {
    open: process.platform === 'darwin',
    host: '0.0.0.0',
    port: 8080,
    https: false,
    hotOnly: false,
    proxy: null // 设置代理
  },

  // webpack配置 - 简单配置方式
  configureWebpack: {
    // 插件等配置
  },

  // webpack配置 - 链式配置方式
  chainWebpack: (config) => {
    // 链式配置
  }
};

链接Webpack配置(chainWebpack)

Vue CLI 4推荐使用chainWebpack方法来修改Webpack配置,这是一个链式调用方法,可以更精细地控制Webpack配置。

chainWebpack: (config) => {
  // 修改loader
  config.module
    .rule('vue')
    .use('vue-loader')
    .loader('vue-loader/lib/loader.js')
    .tap(options => {
      // 修改选项...
      return options;
    });

  // 添加插件
  config.plugin('example').use(ExamplePlugin, [/* options */]);
}

插件的使用和自定义

Vue CLI 4允许通过vue.config.js文件中的plugins选项来添加自定义插件。

const ExamplePlugin = require('example-webpack-plugin');

module.exports = {
  // ...其他配置
  plugins: [
    new ExamplePlugin({
      // 插件选项
    })
  ]
};

第5章 构建优化

代码分割和懒加载

Vue CLI 4支持动态导入,这可以让你的应用实现代码分割和懒加载。
AD:享受无干扰的沉浸式阅读之旅

// 示例:动态导入组件
const MyComponent = () => import('./MyComponent.vue');

Tree-shaking和依赖优化

Webpack 4支持tree-shaking,可以帮助你去除未使用的代码。在vue.config.js中,可以通过配置来启用这项功能。

module.exports = {
  // ...其他配置
  configureWebpack: {
    optimization: {
      usedExports: true,
    },
  },
};

使用CDN加速项目加载

vue.config.js中,可以配置外部链接来使用CDN。

module.exports = {
  // ...其他配置
  configureWebpack: {
    externals: {
      vue: 'Vue',
      'vue-router': 'VueRouter',
      vuex: 'Vuex',
      // ...其他库
    },
  },
};

在HTML模板中,通过<script><link>标签引入CDN资源。

第6章 多环境配置

开发环境、测试环境和生产环境的配置

Vue CLI 4支持通过.env文件来配置不同环境的环境变量。例如:

// .env.development
VUE_APP_API_URL=http://localhost:3000/api

// .env.production
VUE_APP_API_URL=https://production-api.com/api

package.json中,可以定义不同的启动和构建命令:

{
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:prod": "vue-cli-service build --mode production",
    "build:test": "vue-cli-service build --mode test"
  }
}

环境变量的使用

环境变量可以通过process.env在代码中访问。Vue CLI会自动加载以VUE_APP_开头的环境变量到客户端侧的代码中。

构建命令的定制

Vue CLI 允许你自定义构建命令,以适应不同的构建需求。你可以通过修改package.json中的scripts字段来达到这个目的。

例如,你可能想要创建一个特定的构建命令来构建生产环境的版本,并且使用一个特定的配置文件:

{
  "scripts": {
    "build": "vue-cli-service build",
    "build:prod": "vue-cli-service build --mode production --config vue.config.prod.js"
  }
}

在上面的例子中,build:prod命令会使用生产环境的模式 (--mode production)
并指定一个特定的配置文件 (--config vue.config.prod.js) 来进行构建。

此外,你还可以创建自定义的启动命令,以便在不同的开发环境中使用:

{
  "scripts": {
    "serve": "vue-cli-service serve",
    "serve:mock": "vue-cli-service serve --mode mock --config vue.config.mock.js"
  }
}

在这里,serve:mock命令会使用模拟数据的环境 (--mode mock) 并指定一个模拟数据的配置文件 (--config vue.config.mock.js)
来启动开发服务器。

总结

Vue CLI 4 提供了强大的配置选项,允许开发者根据具体需求定制化项目配置。通过vue.config.js文件,你可以修改 Webpack
配置、定义环境变量、使用插件以及优化构建过程。同时,CLI 也支持多环境配置,使得开发者能够更容易地管理不同环境下的项目设置。掌握这些高级配置技巧,可以帮助开发者更高效地开发和管理
Vue 项目。
AD:覆盖广泛主题工具可供使用

第三部分:项目构建与部署

第7章 项目构建流程

7.1 构建命令的使用

在 Vue CLI 项目中,构建命令通常指的是用来编译和打包项目文件的命令。Vue CLI 提供了以下常用的构建命令:

  • vue-cli-service build:这是默认的构建命令,用于构建生产环境的代码。它将编译源码并生成dist目录,其中包含了压缩后的静态文件。
  • vue-cli-service serve:这个命令用于启动开发服务器,通常在开发阶段使用。
7.2 项目的编译和打包

项目的编译和打包通常指的是将.vue文件和其他资源文件(如 JavaScript、CSS、图片等)转换成浏览器可以理解的静态文件的过程。Vue
CLI 使用 Webpack 来处理这一过程,以下是编译和打包的基本步骤:

  1. 依赖安装:确保所有项目依赖都已正确安装。
  2. 配置检查:检查vue.config.js文件中的配置是否正确。
  3. 编译:Webpack 开始编译源码,将.vue文件编译成 JavaScript 代码,同时处理 CSS 预处理器、图片等资源。
  4. 打包:编译后的代码和资源被打包成一个或多个 bundle 文件。
  5. 优化:Webpack 会进行代码分割、压缩等优化操作。
  6. 输出:最终生成的静态文件被放置在dist目录下。
7.3 热重载和监控

热重载(Hot Module Replacement,HMR)是 Vue CLI 提供的一个功能,它可以在不刷新整个页面的情况下,通过替换更新的模块来实现实时预览更新。使用
Vue CLI 的vue-cli-service serve命令启动开发服务器时,默认就开启了热重载功能。

监控通常指的是对构建过程的监控,Vue CLI 提供了详细的构建日志和进度指示,以便开发者了解构建过程的状态。

第8章 部署与自动化

8.1 静态资源的部署

静态资源的部署通常涉及到将构建后的dist目录中的文件上传到服务器或 CDN。以下是一些常见的部署方式:

  • FTP:使用 FTP 将文件上传到服务器。
  • SCP:使用 SCP 命令通过 SSH 将文件复制到服务器。
  • CDN:将文件上传到 CDN 提供商,然后通过 CDN 分发到用户。
8.2 CI/CD流程的集成

持续集成(CI)和持续部署(CD)是现代软件开发的重要组成部分。集成 Vue CLI 项目到 CI/CD 流程通常涉及以下步骤:

  1. 代码提交:当代码被提交到版本控制系统时,CI 流程被触发。
  2. 自动化测试:运行自动化测试来验证代码更改。
  3. 构建:执行构建命令,生成生产环境的代码。
  4. 部署:将构建后的代码部署到生产环境或测试环境。
8.3 自动化部署脚本编写

自动化部署脚本可以帮助开发者自动化部署过程。以下是一个简单的自动化部署脚本的示例,使用 SSH 和 SCP 命令将文件部署到远程服务器:

#!/bin/bash

# 服务器配置
SERVER_IP="123.45.67.89"
SERVER_USER="username"
SERVER_PATH="/var/www/html"

# 本地构建目录
BUILD_PATH="./dist"

# 构建项目
npm run build

# 使用 SSH 连接到服务器,并使用 SCP 部署文件
scp -r $BUILD_PATH/* $SERVER_USER@$SERVER_IP:$SERVER_PATH

echo "部署完成"

这个脚本首先定义了服务器的 IP 地址、用户名和路径,然后构建项目,最后通过 SCP
将构建后的文件上传到服务器指定目录。在实际使用中,需要根据具体的服务器配置和项目需求来编写脚本。

第9章 商城项目实战

9.1 项目需求分析和设计

在开始一个商城项目之前,需要进行详细的需求分析和设计。以下是一些关键步骤:

  • 需求收集:与客户沟通,了解商城的基本功能,如商品展示、购物车、订单管理、支付接口等。
  • 功能规划:根据需求确定功能模块,如用户模块、商品模块、订单模块等。
  • 界面设计:设计用户界面,包括首页、商品列表、商品详情、购物车页面等。
  • 技术选型:选择合适的技术栈,如前端使用 Vue CLI 4,后端可能使用 Node.js、Express、MongoDB 等。
  • 数据库设计:设计数据库模型,确定数据存储结构。
9.2 使用Vue CLI 4构建项目

使用 Vue CLI 4 创建项目的基本步骤如下:

  1. 安装 Vue CLI 4:

    npm install -g @vue/cli
    
    
  2. 创建新项目:

    vue create mall-project
    
    

    在创建过程中,可以选择预设配置或手动设置,包括 Vue 版本、添加的插件等。

  3. 进入项目并添加所需依赖:

    cd mall-project
    npm install vue-router vuex axios --save
    
    
  4. 根据设计图和功能规划,编写前端代码,配置路由和状态管理。

9.3 项目构建和部署

项目开发完成后,需要构建和部署:

  1. 构建项目:

    npm run build
    
    

    这将生成dist目录,包含了生产环境下的静态文件。

  2. 部署到服务器或云平台,可以使用自动化部署脚本或 CI/CD 工具。

第10章 企业官网项目实战

10.1 项目需求分析和设计

企业官网的项目需求分析和设计通常包括以下内容:

  • 需求调研:了解企业的业务和目标受众,确定网站需要展示的内容和信息架构。
  • 设计风格:根据企业的品牌形象设计网站的整体风格和布局。
  • 功能规划:确定网站的功能,如公司介绍、产品展示、新闻动态、联系我们等页面。
  • 响应式设计:确保网站在不同设备上都能良好展示。
10.2 使用Vue CLI 4构建项目

构建企业官网的步骤与商城项目类似:

  1. 使用 Vue CLI 4 创建项目。
  2. 安装必要的依赖,如路由、状态管理、UI 库等。
  3. 根据设计图实现页面布局和交互。
10.3 优化和部署

项目完成后,进行优化和部署:

  1. 性能优化:优化图片、代码,减少HTTP请求,使用Webpack的优化功能等。
  2. SEO优化:确保网站内容对搜索引擎友好,提高搜索排名。
  3. 部署:将构建后的静态文件部署到服务器或云平台,如 Netlify、Vercel 等。
  4. 监控和维护:部署后监控网站性能,定期进行内容更新和维护。

附录A Vue CLI 4常见问题解答

常见错误和解决方案
  1. 错误:Error: Invalid or unexpected token

    • 解决方案:通常是语法错误,检查代码中的语法,特别是 JSON 配置文件中是否使用了错误的引号。
  2. 错误:Module not found

    • 解决方案:确保已经正确安装了所有依赖。如果问题仍然存在,尝试删除node_modules目录和package-lock.json
      文件,然后重新安装依赖。
  3. 错误:Cannot find name 'xxx'

    • 解决方案:检查是否正确导入了所需的模块或组件。
性能优化建议
  • 代码分割:使用动态导入(import())实现代码分割,减少初始加载时间。
  • Tree Shaking:移除未使用的代码,减少最终构建的文件大小。
  • 图片优化:使用图片压缩工具减小图片文件大小。
  • 缓存策略:合理设置 HTTP 缓存头,利用浏览器缓存。
版本更新和迁移指南
  • 备份:在进行版本更新前,备份当前项目。
  • 更新 CLI:使用npm update -g @vue/cli更新 Vue CLI。
  • 更新项目:在项目目录中运行vue upgrade
  • 检查配置:检查项目配置文件,确保兼容新版本。

附录B Vue CLI 4插件列表

官方插件介绍
  • @vue/cli-plugin-babel:Babel 插件,用于转译 JavaScript 代码。
  • @vue/cli-plugin-eslint:ESLint 插件,用于代码质量和风格检查。
  • @vue/cli-plugin-router:Vue Router 插件,用于页面路由管理。
  • @vue/cli-plugin Vuex:Vuex 插件,用于状态管理。
第三方插件推荐
  • vue-cli-plugin-element:Element UI 插件,用于快速搭建界面。
  • vue-cli-plugin-i18n:国际化插件,用于多语言支持。
  • vue-cli-plugin-lighthouse:Lighthouse 插件,用于性能检测。
插件的安装和使用方法

安装插件:

vue add plugin-name

或在vue.config.js中配置:

module.exports = {
  plugins: [
    ['plugin-name', { /* 配置选项 */ }]
  ]
}

附录C Vue CLI 4配置参考

配置文件的结构和示例

Vue CLI 4 项目通常包含一个vue.config.js文件,用于配置项目:

module.exports = {
  // 基本路径
  publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/',
  // 构建时的输出目录
  outputDir: 'dist',
  // 放置静态资源的目录
  assetsDir: 'static',
  // html的输出路径
  indexPath: 'index.html',
  // 文件名哈希
  filenameHashing: true,
  // eslint-loader 是否在保存的时候检查
  lintOnSave: process.env.NODE_ENV !== 'production',
  // 是否使用包含运行时编译器的Vue核心的构建
  runtimeCompiler: false,
  // 默认情况下 babel-loader 忽略其中的所有文件 node_modules
  transpileDependencies: [],
  // 生产环境 sourceMap
  productionSourceMap: false,
  // 跨域设置
  devServer: {
    open: process.platform === 'darwin',
    host: '0.0.0.0',
    port: 8080,
    https: false,
    hotOnly: false,
    proxy: null // 设置代理
  },
  // webpack配置 - 简单配置方式
  configureWebpack: {
    // 插件等配置
  },
  // webpack配置 - 链式配置方式
  chainWebpack: (config) => {
    // 链式配置
  },
  // PWA 插件相关配置
  pwa: {},
  // 第三方插件配置
  pluginOptions: {}
}

常用配置项详解
  • publicPath:设置基础路径,用于部署到非根路径。
  • outputDir:设置构建输出目录。
  • assetsDir:设置放置静态资源的目录。
  • indexPath:设置 HTML 输出路径。
  • filenameHashing:设置文件名是否包含hash,用于缓存控制。
  • lintOnSave:设置是否在保存时进行ESLint检查。
  • devServer:设置开发服务器相关配置。
高级配置技巧
  • 链式配置:使用chainWebpack方法进行细粒度的配置。

  • 环境变量:通过 process.env访问环境变量,可以在vue.config.js中使用环境变量来设置不同的配置。

  • 多环境配置
    :通过设置不同的环境变量,可以实现开发环境、测试环境和生产环境的配置切换。可以在项目根目录下创建.env.development.env.test
    .env.production文件,分别配置不同环境的变量。

  • 外部配置文件:如果配置信息较为复杂,可以将配置抽离到外部的 JSON 或 YAML 文件中,然后在vue.config.js中引入。

  • 自定义插件:如果官方插件或第三方插件不能满足需求,可以开发自定义插件。通过webpack的插件系统,可以创建具有特定功能的插件。

  • 优化构建性能:通过配置webpackexternals选项,可以将一些大型库如lodashmoment等排除在构建之外,减少构建时间。

  • 缓存策略:配置webpackcache选项,可以提高构建的缓存命中率,加快构建速度。

  • CSS 相关配置:通过css选项,可以配置 CSS 的相关处理,如提取 CSS 文件、启用 CSS Modules 等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot整合WebSocket和Redis实现直播间在线人数统计功能

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

在线OJ项目测试(selenium+Junit5)

目录 在线OJ项目测试的思维导图 在线OJ的UI自动化测试 测试一&#xff1a;检查未登录时的页面访问以及一些未登录时的非法操作 测试二&#xff1a;测试注册界面 测试三&#xff1a;测试登录界面 测试四&#xff1a;测试题目列表界面 测试五&#xff1a;测试题目详情界面…

USB能直接取代RS-232串口吗?

USB是什么 USB是一种通用串行总线接口标准&#xff0c;用于连接计算机系统和外部设备&#xff0c;用于数据传输和供电。 优点&#xff1a; 高速传输&#xff1a; USB接口提供高速数据传输速率&#xff0c;适用于快速传输大容量数据。热插拔&#xff1a; 可以在设备运行时插拔US…

【安装笔记-20240608-Linux-动态域名更新服务之YDNS】

安装笔记-系列文章目录 安装笔记-20240608-Linux-动态域名更新服务之YDNS 文章目录 安装笔记-系列文章目录安装笔记-20240608-Linux-动态域名更新服务之YDNS 前言一、软件介绍名称&#xff1a;YDNS主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-23.05.3-x86-64注册填…

test 判断字符串不为空

#!/bin/bash read -p "请输入参数:" name test -z $name if [ $? -eq 1 ]; then echo "入参&#xff1a;$name" else echo "入参为null" fi

【冲刺秋招,许愿offer】第 一 天

【冲刺秋招&#xff0c;许愿offer】第 一 天 知识点emo环节 知识点 Java Leetcode&#xff1a;可以用LinkedListMap模拟实现LRUCache&#xff0c;用hash表查找&#xff0c;双向链表记录顺序。集合&#xff1a;集合的遍历方式&#xff0c;可以使用迭代器(万能)、增强for只能用…

数据结构 -- 树状数组

前言 树状数组或二叉索引树&#xff08;Binary Indexed Tree&#xff09;&#xff0c;又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题&#xff0c;现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

Lua移植到标准ANSI C环境

本文目录 1、引言2、环境准备2.1 源码下载2.2 项目构建环境准备 3、项目编译3.1 添加main.c3.2 Kconfig选择模块3.3 项目构建3.4 项目编译 4、运行 文章对应视频教程&#xff1a; 在下方喔 ~~~ 欢迎关注 点击图片或链接访问我的B站主页~~~ lau解释器移植与功能验证 1、引言 本…

RabbitMQ-工作模式(Publish模式Routing模式)

文章目录 发布/订阅&#xff08;Publish/Subscribe&#xff09;交换机临时队列绑定总体代码示例 路由&#xff08;Routing&#xff09;绑定直连交换机多重绑定发送日志订阅总体代码示例 更多相关内容可查看 发布/订阅&#xff08;Publish/Subscribe&#xff09; 构建一个简单的…

达梦8 探寻达梦排序原理:新排序机制(SORT_FLAG=1)

测试版本&#xff1a;--03134283938-20221019-172201-20018 达梦的排序机制由四个dm.ini参数控制&#xff1a; #maximum sort buffer size in Megabytes &#xff0c;有效值范围&#xff08;1~2048&#xff09; SORT_BUF_SIZE 100 #ma…

FinalShell导出服务器配置信息密码password是加密的,如何解密?

本章教程,主要实现了一个小的功能,对FinalShell导出的配置信息,进行解密。 FinalShell导出之后,会产生一个json文件,例如下面这种json格式,里面记录了服务器的IP地址,端口和密码,里面的密码是经过加密处理的,本文主要利用java代码实现对这个password进行解密还原。 {&…

【设计模式】行为型设计模式之 策略模式学习实践

介绍 策略模式&#xff08;Strategy&#xff09;&#xff0c;就是⼀个问题有多种解决⽅案&#xff0c;选择其中的⼀种使⽤&#xff0c;这种情况下我们 使⽤策略模式来实现灵活地选择&#xff0c;也能够⽅便地增加新的解决⽅案。⽐如做数学题&#xff0c;⼀个问题的 解法可能有…

五、身份与访问管理—身份管理和访问控制管理(CISSP)

目录 1.身份管理 1.1 目录技术 1.2 单点登录 1.2.1 Kerberos认证 1.2.2 SESAME认证 1.2.3 KryptoKnight认证 1.3 联合身份管理 1.3.1 SAML安全断言标记语言 1.3.2 标记语言 1.3.3 OpenID 1.3.4 OAuth 1.3.5 OIDC(OpenID Connect) 2.身份即服务(IDaaS) 2.1 AA…

如何提高网站收录?

GSI服务就是专门干这个的&#xff0c;这个服务用的是光算科技自己研发的GPC爬虫池系统。这个系统通过建立一个庞大的站群和复杂的链接结构&#xff0c;来吸引谷歌的爬虫。这样一来&#xff0c;你的网站就能更频繁地被谷歌的爬虫访问&#xff0c;从而提高被收录的机会。 说到效…

【漏洞复现】Apache OFBiz 路径遍历导致RCE漏洞(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台&#xff0c;用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 …

【Nacos 2.3.3支持Postgre SQL数据源配置】

Nacos 2.3.3支持Postgre SQL数据源配置 1、Nacos下载2、 插件下载&#xff1a;3、SQL脚本获取、nacos数据库创建、插件编译4、Nacos 集群搭建方式&#xff1a; 1、Nacos下载 下载地址&#xff1a; https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip 或者自行在官…

OrangePi AIpro Ubuntu 22.04 aarch64 安装MySql 8.0

查看MySQL安装包 接下来可以使用以下命令安装MySQL服务器&#xff1a; 安装MySQL 8.0 # 安装最新版本 sudo apt install -y mysql-server # 安装指定版本 sudo apt install -y mysql-server-8.0初始化配置信息 sudo mysql_secure_installationVALIDATE PASSWORD COMPONENT ca…

pc之间的相互通信详解

如图&#xff0c;实现两台pc之间的相互通信 1.pc1和pc2之间如何进行通讯。 2.pc有mac和ip&#xff0c;首先pc1需要向sw1发送广播&#xff0c;sw1查询mac地址表&#xff0c;向router发送广播&#xff0c;router不接受广播&#xff0c;router的每个接口都有ip和mac&#xff0c;…

【Java笔记】第10章:接口

前言1. 接口的概念与定义2. 接口的声明与语法3. 接口的实现4. 接口的继承5. 接口的默认方法6. 接口的静态方法7. 接口的私有方法8. 接口的作用9. 接口与抽象类的区别10. 接口在Java集合中的应用结语 上期回顾:【Java笔记】第9章&#xff1a;三个修饰符 个人主页&#xff1a;C_G…

Java | Leetcode Java题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; public class Solution {public boolean wordBreak(String s, List<String> wordDict) {Set<String> wordDictSet new HashSet(wordDict);boolean[] dp new boolean[s.length() 1];dp[0] true;for (int i 1; i < s.len…