计算机毕业设计-基于SSM的音乐推荐管理系统

2023-11-07

项目摘要

中国风音乐推介网站近年来已成为风靡全球的新兴艺术形式。国内涌现出了大批优秀、有才华的爱好者和许多经久不衰的经典作品。中国风音乐推介网站的兴起打破了音乐界格局,也突破了原有分类唱法发展中的瓶颈,为声乐艺术的发展开辟了新篇章。这种新兴的演唱风格是声乐艺术家们对原有演唱方法的秉承及对独特的演唱风格不间断的追求和创新,满足了当代大众多元化的审美标准,也符合声乐艺术发展的规律。近年来,音乐推介网站在国内得到了长足的发展,但与欧美国家的发展水平相比,在市场运营、人才培养等多个方面仍有较大差距。音乐推介网站在中国如何能健康、快速的发展,需要我们持续不懈的为之探索。
具体在系统设计上,采用了B/S的结构,同时,也使用SSM技术在动态页面上进行了设计,后台上采用java语言Mysql数据库,是一个非常优秀的中国风音乐推介网站。

系统开发技术

Java语言

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,Java(java server pages),和XML技术。Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于快递员Web应用程序开发和移动应用程序开发。Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了改进。

SSM框架

1.Spring的优势:
通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
2.Spring MVC的优势:
SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们的开发更简洁。
3.Mybatis的优势:
数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合,提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建提供了xml标签,支持动态的sql。

Tomcat服务器

Tomcat属于一种轻型的服务器,所以说在中小快递员中并不具有普适性。但是当程序员需要开发或调试Java 程序时,则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说,计算机系统具有一个好的Apache服务器,可以很好的对HTML 页面进行访问。Tomcat 虽然是Apache的扩展,但是它们都是可以独立运行的,二者是不互相干扰的。当配置正确的时候,Apache服务器为HTML 页面的运行提供技术支持,Tomcat 的任务则是运行Servle和Java 页面。Tomca也具有一定的HTML页面处理功能。

MySQL数据库

Mysql的语言是非结构化的,快递员、学生可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为快递员、学生进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。

B/S结构

BROWSER/SERVER程序架构方式是使用电脑中安装的各种浏览器来进行访问和使用的,相比C/S的程序结构不需要进行程序的安装就可以直接使用。BROWSER/SERVER架构的运行方式是在远程的服务器上进行安装一个,然后在任何接入互联网的电脑上访问和使用。BROWSER/SERVER架构的开发方式给用户带来了极大的便利,在任何时间和地点都可以使用开发的程序系统。
在B/S的结构中,用户可以在任何可以上网的地方访问和使用系统网站的功能,没有地域和时间等方面的限制,B/S结构是把程序完整放置到计算机网络的服务器上,通过计算机互联网给用户提供远程的网络服务。在三层体系结构的B/S系统中,通过浏览器,会员可以对很多服务器发出请求, B/S系统会很大程度的降低工作量,用户只需要安装运行较少的客户端即可,大量的工作将由服务器承担,另外,服务器也完成包括访问数据库,执行应用程序的工作等等。
B/S结构主要有三层,分别为数据层、控制逻辑层和视图层。用户通过视图层,让控制层调用数据层的数据,从而达到整个访问过程。三层相互独立,维护方便,使用安全,三层有互相调用,提高效率。

系统分析

系统流程分析

系统登录流程图,如图所示:
在这里插入图片描述
添加信息流程图,如图所示:
在这里插入图片描述
删除信息流程图,如图所示:
在这里插入图片描述

功能截图

用户前后台功能实现

注册用户通过注册窗口,进行在线填写自己的用户名、密码、姓名、性别、头像、身份证、手机等信息编辑完成后核对信息无误后进行选择注册,系统核对用户所输入的账号信息是否准确,核对信息准确无误后系统进入登陆界面。用户通过登录进入到系统操作界面后
注册页如下
在这里插入图片描述
登录页如下
在这里插入图片描述
用户登录进入到网站界面,可以进行查看首页、歌曲信息、戏曲信息、MV专区、付费音乐、论坛信息 、我的、客服等功能模块,进行相对应操作,通过个人中心进行查看个人信息、信息修改,删除进行查看操作
在这里插入图片描述
用户通过点击歌曲信息可以进行查看歌名、类型、乐器类型、歌手、专辑、封面、歌词、发布时间、试听、时间等信息,进行查看等操作,如图。用户点击戏曲信息页面,可以进行查看戏曲信息等内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
付费音乐,用户通过查看付费音乐信息可以进行购买等信息
在这里插入图片描述
个人中心,用户通过点击个人中心可以进行用户名、密码、姓名、性别、头像、身份证、手机等信息进行添加、删除、修改等等操作
在这里插入图片描述
订单信息管理,对于已经登录的用户可以对购物车内容进行付款生成订单,可以为自己的订单进行付款或者查看支付
在这里插入图片描述
在这里插入图片描述
在收藏管理页面可以查看 收藏ID 表名 收藏名称、收藏图片等等内容,并进行删除或查看等操作
在这里插入图片描述

管理员功能模块

管理员通过后台登录窗口进行输入自己的账号信息、密码、角色等信息,进行登录
在这里插入图片描述
管理员对个人中心进行操作填写原密码、新密码、确认密码并进行添加、删除、修改以及查看
在这里插入图片描述
用户信息,管理员通过用户信息可以在线查看用户名、密码、姓名、性别、头像、身份证、手机等信息,进行详情或修改、删除操作
在这里插入图片描述
歌曲信息管理,管理员通过歌曲信息管理可以在线查看歌名、类型、乐器类型、歌手、专辑、封面、歌词、发布时间、试听、时间、操作等信息,进行查看或添加、修改、删除操作
在这里插入图片描述
MV专区管理,管理员通过MV专区管理可以在线查看MV名称、歌手、作词、作曲、封面、视频、简术、发表日期、操作等信息,进行查看或添加、修改、删除操作
在这里插入图片描述
管理员通过系统管理页面查看轮播图/客服管理等进行上传图片进行添加、删除、修改以及查看并对整个系统进行维护等操作
在这里插入图片描述

相关代码

数据库配置

# Tomcat
server:
    tomcat:
        uri-encoding: UTF-8
    port: 8080
    servlet:
        context-path: /springbootr1tjf

spring:
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
        username: root
        password: 123456

#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456

    servlet:
      multipart:
        max-file-size: 10MB
        max-request-size: 10MB
    resources:
      static-locations: classpath:static/,file:static/

#mybatis
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.entity
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 1
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: true
    #刷新mapper 调试神器
    refresh-mapper: true
    #逻辑删除配置
    logic-delete-value: -1
    logic-not-delete-value: 0
    #自定义SQL注入器
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true
    #springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
    jdbc-type-for-null: 'null' 

控制层(controller)

package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

业务层(Service)


package com.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.UserEntity;
import com.utils.PageUtils;


/**
 * 系统用户
 */
public interface UserService extends IService<UserEntity> {
 	PageUtils queryPage(Map<String, Object> params);
    
   	List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);
   	
   	PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);
	   	
}

数据访问层(Dao)

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;

/**
 * 用户
 */
public interface UserDao extends BaseMapper<UserEntity> {
	
	List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);

	List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);
	
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机毕业设计-基于SSM的音乐推荐管理系统 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 联软科技安全准入门户平台RCE(命令执行)漏洞

    联软科技安全准入门户平台RCE 命令执行漏洞 前言 声明 一 漏洞描述 二 影响平台 三 漏洞复现 四 修复方案 五 工具链接 前言 联软科技安全准入门户平台 commondRetStr处存在远程代码执行漏洞 攻击者可以获取服务器权限 声明
  • AIGC - 文本生成视频大模型-英文-通用领域 (Text-to-video-synthesis Model in Open Domain)

    文本生成视频大模型 英文 通用领域 Text to video synthesis Model in Open Domain 本模型基于多阶段文本到视频生成扩散模型 输入描述文本 返回符合文本描述的视频 仅支持英文输入 This model
  • WebRTC在浏览器中的演示

    WebRTC在chrome浏览器里演示的例子很多 WebRTC的源码里就有 但是在Firefox浏览器里 例子不能使用 网上的资料说要把 media peerconnection enabled 设置为True 但是Firefox浏览器里
  • 接口的Mock测试及Mockito使用

    参考链接 1 Mock测试的目的两个 1 验证方法调用 2 指定某个方法的返回值 或者是执行特定的动作 2 所谓的mock就是创建一个类的虚假的对象 在测试环境中 用来替换掉真实的对象 以达到两大目的 验证这个对象的某些方法的调用情况 调用
  • 软件工程 网上购物系统源码

    网上购物商城web系统的需求分析是项目开发中非常重要的环节 通过分析消费者和商家的需求 确立系统所需具备的功能和性能 以便有效地规划 设计和实施系统 从消费者的需求出发 网上购物商城web系统需要提供以下主要功能 1 商品展示功能 系统需要
  • (三-一)IPC-邮箱通信

    一个线程想发送信息到另一个线程 最直接的方式是用全局变量 但是全局变量难以管理 而且一个线程希望等待信息的时候把自己挂起 需要有一个方便的方案 邮箱通信是操作系统中常用的一种通信机制 如图所示 很多操作系统 如RT THREAD 邮箱其实也
  • springboot+spring-security+ajax+前后端分离解决Authorization请求头跨域问题

    security ajax 前后端分离解决Authorization请求头跨域问题 背景 后端采用 springboot spring security oauth2开发 前台采用纯静态页面的形式开发 以此做到前后端分离 采用token的形
  • Python实现线性回归

    文章目录 一 线性回归原理 1 构造模型 2 构建损失函数 3 优化损失 二 设计方案 1 准备数据 2 构造损失函数 3 优化损失 三 代码实现 四 总结 一 线性回归原理 1 构造模型 y w1x1 w2x2 b 2 构建损失函数 均方
  • kolla-ansible部署openstack+opendaylight

    1 环境准备 准备三台机器 分别作为OpenStack的controller和compute节点 OpenDayLight节点 另外把controller作为本次的部署节点 其中controller和compute节点各两张网卡 odl节点
  • 网站部署到服务器后乱版,nginx配置双网站后,域名乱跳转的解决方法

    前言 今天 小焦给大家要讨论的问题就是一台服务器配置两个网站后 域名错误的问题 因为个人需求 我在一台nginx配置的服务器上部署了两个网站 一个是纯html和css写的静态网站 一个就是我用wordpress做的这个现在的这个个人博客网站
  • 【数字信号处理2】IIR 滤波器设计

    一 实验目的 1 掌握冲激响应法和双线性变换法设计IIR滤波器的原理及具体设计方法 熟悉用双线性设计法设计低通 带通和高通IIR数字滤波器的计算机程序 2 熟悉模拟Butterworth滤波器的设计 掌握冲激响应法和双线性变换法设计数字II
  • C++——命名空间(namespace)

    目录 1 C语言命名冲突 2 命名空间定义 3 命名空间使用 可能大家在看别人写的C 代码中 在一开始会包这个头文件 include
  • Mac下抓包工具Charles的使用

    一 简介 Charles是目前最强大的http调试工具 在界面和功能上远强于Fiddler 1 1 界面功能 工具条包含了Charles的大部分功能 右键请求出现菜单 Charles的右键菜单功能比fiddler强大太多了 双击请求进入列表
  • Python+Selenium框架设计篇1- 价值好几K的框架,不看别后悔,过时不候

    1 什么是自动化测试框架 在了解什么是自动化测试框架之前 先了解一下什么叫框架 框架是整个或部分系统的可重用设计 表现为一组抽象构件及构件实例间交互的方法 另一种定义认为 框架是可被应用开发者定制的应用骨架 前者是从应用方面 而后者是从目的
  • 8579 链式线性表的基本操作

    8579 链式线性表的基本操作 题干 8579 链式线性表的基本操作 时间限制 1000MS 代码长度限制 10KB 提交次数 5567 通过次数 2176 题型 编程题 语言 G GCC Description 编写算法 创建一个含有n个
  • 初步认识Thread网络

    Thread网络 说明 本文档内容参考自 https openthread google cn guides 是基于这个官方文档内容进行的添加一些个人理解的介绍文档 文档内容仅能作为对thread 网络的一个概念学习和参考 基本概念 Thr
  • 前端页面如何适应不同屏幕分辨率常用做法

    为什么80 的码农都做不了架构师 gt gt gt 1 根据几个浏览器分辨率统计平台得到数据现在使用1200分辨率以下用户极少 但我们CSS布局时仍然需要至少考虑1024px分辨率用户 2 使用css media 属性针对不同的屏幕加载不同
  • MarkDown软件Typora图片上传解决方案:Typora+PicGo图床

    MarkDown软件Typora图片上传解决方案 Typora PicGo图床 一 问题描述 今天在网上学习Java开发环境配置 想在CSDN上写篇博客记录安装及环境配置过程 经过在网上的调研 相当一部分的程序员都喜欢用一款名为 Typor
  • unity 射线检测真机失效_用Unity的RaycastCommand实现子弹的碰撞检测碰到的大坑

    首先放个视频来展示一下 星之海的阿斯特莉娅 最新的开发进度吧 加入了防空系统 可以拦截敌人的导弹 https www bilibili com video BV1i541167BY 假装这里有视频 b站换成bv号了 这里好像还不支持 然后来
  • 计算机毕业设计-基于SSM的音乐推荐管理系统

    项目摘要 中国风音乐推介网站近年来已成为风靡全球的新兴艺术形式 国内涌现出了大批优秀 有才华的爱好者和许多经久不衰的经典作品 中国风音乐推介网站的兴起打破了音乐界格局 也突破了原有分类唱法发展中的瓶颈 为声乐艺术的发展开辟了新篇章 这种新兴