基于springboot校园招聘系统源码和论文

news2024/12/29 9:56:06

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、文案

使用旧方法对校园招聘系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在校园招聘系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的校园招聘系统对字典表管理、公告管理、简历管理、企业管理、学校人员管理、用户管理、职位招聘管理、用户咨询管理、职位收藏管理、职位留言管理、简历投递管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园招聘系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园招聘系统的开发让用户查看职位招聘信息变得容易,让管理员高效管理职位招聘信息。

关键词:校园招聘系统;职位招聘信息;公告;自助资讯

基于springboot校园招聘系统源码和论文692

演示视频:

【计算机毕业设计】基于springboot校园招聘系统源码和论文


Abstract

Using the old method to systematically manage the tourist attraction information no longer makes people trust. Applying the current network information technology to the management of tourist attraction information can solve many problems in information management, such as processing data for a long time, data There are problems such as errors that cannot be corrected in time. The self-guided website developed this time centralizes the city information of attractions, tourist attractions information, comment information, and self-help information. After learning the network knowledge I had previously consulted and the knowledge I learned in the school classroom, I decided to develop the system to select the 小程序 mode, an efficient mode to complete system function development. This mode allows the operator to access the website based on the browser. The mainstream Java language is used in the object-oriented language to develop the self-guided website program. In the database selection, select the powerful Mysql database for data. Store operation. The development of self-guided websites makes it easy for users to view information on attractions, allowing administrators to efficiently manage information on attractions.

Key WordsSelf-guided tour website; tourist attractions; reviews; self-help information

 


package com.controller;

import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;

import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;

/**
 * 学校人员
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/xuexiaorenyuan")
public class XuexiaorenyuanController {
    private static final Logger logger = LoggerFactory.getLogger(XuexiaorenyuanController.class);

    private static final String TABLE_NAME = "xuexiaorenyuan";

    @Autowired
    private XuexiaorenyuanService xuexiaorenyuanService;


    @Autowired
    private TokenService tokenService;

    @Autowired
    private DictionaryService dictionaryService;//字典表
    @Autowired
    private GonggaoService gonggaoService;//公告
    @Autowired
    private JianliService jianliService;//简历
    @Autowired
    private QiyeService qiyeService;//企业
    @Autowired
    private YonghuService yonghuService;//用户
    @Autowired
    private ZhaopinService zhaopinService;//职位招聘
    @Autowired
    private ZhaopinChatService zhaopinChatService;//用户咨询
    @Autowired
    private ZhaopinCollectionService zhaopinCollectionService;//职位收藏
    @Autowired
    private ZhaopinLiuyanService zhaopinLiuyanService;//职位留言
    @Autowired
    private ZhaopinToudiService zhaopinToudiService;//简历投递
    @Autowired
    private UsersService usersService;//管理员


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("企业".equals(role))
            params.put("qiyeId",request.getSession().getAttribute("userId"));
        else if("学校人员".equals(role))
            params.put("xuexiaorenyuanId",request.getSession().getAttribute("userId"));
        CommonUtil.checkMap(params);
        PageUtils page = xuexiaorenyuanService.queryPage(params);

        //字典表数据转换
        List<XuexiaorenyuanView> list =(List<XuexiaorenyuanView>)page.getList();
        for(XuexiaorenyuanView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectById(id);
        if(xuexiaorenyuan !=null){
            //entity转view
            XuexiaorenyuanView view = new XuexiaorenyuanView();
            BeanUtils.copyProperties( xuexiaorenyuan , view );//把实体数据重构到view中
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody XuexiaorenyuanEntity xuexiaorenyuan, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,xuexiaorenyuan:{}",this.getClass().getName(),xuexiaorenyuan.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");

        Wrapper<XuexiaorenyuanEntity> queryWrapper = new EntityWrapper<XuexiaorenyuanEntity>()
            .eq("username", xuexiaorenyuan.getUsername())
            .or()
            .eq("xuexiaorenyuan_phone", xuexiaorenyuan.getXuexiaorenyuanPhone())
            .or()
            .eq("xuexiaorenyuan_id_number", xuexiaorenyuan.getXuexiaorenyuanIdNumber())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XuexiaorenyuanEntity xuexiaorenyuanEntity = xuexiaorenyuanService.selectOne(queryWrapper);
        if(xuexiaorenyuanEntity==null){
            xuexiaorenyuan.setCreateTime(new Date());
            xuexiaorenyuan.setPassword("123456");
            xuexiaorenyuanService.insert(xuexiaorenyuan);
            return R.ok();
        }else {
            return R.error(511,"账户或者学校人员手机号或者学校人员身份证号已经被使用");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody XuexiaorenyuanEntity xuexiaorenyuan, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
        logger.debug("update方法:,,Controller:{},,xuexiaorenyuan:{}",this.getClass().getName(),xuexiaorenyuan.toString());
        XuexiaorenyuanEntity oldXuexiaorenyuanEntity = xuexiaorenyuanService.selectById(xuexiaorenyuan.getId());//查询原先数据

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
        if("".equals(xuexiaorenyuan.getXuexiaorenyuanPhoto()) || "null".equals(xuexiaorenyuan.getXuexiaorenyuanPhoto())){
                xuexiaorenyuan.setXuexiaorenyuanPhoto(null);
        }

            xuexiaorenyuanService.updateById(xuexiaorenyuan);//根据id更新
            return R.ok();
    }



    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        List<XuexiaorenyuanEntity> oldXuexiaorenyuanList =xuexiaorenyuanService.selectBatchIds(Arrays.asList(ids));//要删除的数据
        xuexiaorenyuanService.deleteBatchIds(Arrays.asList(ids));

        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
        try {
            List<XuexiaorenyuanEntity> xuexiaorenyuanList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            XuexiaorenyuanEntity xuexiaorenyuanEntity = new XuexiaorenyuanEntity();
//                            xuexiaorenyuanEntity.setUsername(data.get(0));                    //账户 要改的
//                            xuexiaorenyuanEntity.setPassword("123456");//密码
//                            xuexiaorenyuanEntity.setXuexiaorenyuanName(data.get(0));                    //学校人员姓名 要改的
//                            xuexiaorenyuanEntity.setXuexiaorenyuanPhoto("");//详情和图片
//                            xuexiaorenyuanEntity.setXuexiaorenyuanPhone(data.get(0));                    //学校人员手机号 要改的
//                            xuexiaorenyuanEntity.setXuexiaorenyuanIdNumber(data.get(0));                    //学校人员身份证号 要改的
//                            xuexiaorenyuanEntity.setXuexiaorenyuanEmail(data.get(0));                    //邮箱 要改的
//                            xuexiaorenyuanEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            xuexiaorenyuanEntity.setCreateTime(date);//时间
                            xuexiaorenyuanList.add(xuexiaorenyuanEntity);


                            //把要查询是否重复的字段放入map中
                                //账户
                                if(seachFields.containsKey("username")){
                                    List<String> username = seachFields.get("username");
                                    username.add(data.get(0));//要改的
                                }else{
                                    List<String> username = new ArrayList<>();
                                    username.add(data.get(0));//要改的
                                    seachFields.put("username",username);
                                }
                                //学校人员手机号
                                if(seachFields.containsKey("xuexiaorenyuanPhone")){
                                    List<String> xuexiaorenyuanPhone = seachFields.get("xuexiaorenyuanPhone");
                                    xuexiaorenyuanPhone.add(data.get(0));//要改的
                                }else{
                                    List<String> xuexiaorenyuanPhone = new ArrayList<>();
                                    xuexiaorenyuanPhone.add(data.get(0));//要改的
                                    seachFields.put("xuexiaorenyuanPhone",xuexiaorenyuanPhone);
                                }
                                //学校人员身份证号
                                if(seachFields.containsKey("xuexiaorenyuanIdNumber")){
                                    List<String> xuexiaorenyuanIdNumber = seachFields.get("xuexiaorenyuanIdNumber");
                                    xuexiaorenyuanIdNumber.add(data.get(0));//要改的
                                }else{
                                    List<String> xuexiaorenyuanIdNumber = new ArrayList<>();
                                    xuexiaorenyuanIdNumber.add(data.get(0));//要改的
                                    seachFields.put("xuexiaorenyuanIdNumber",xuexiaorenyuanIdNumber);
                                }
                        }

                        //查询是否重复
                         //账户
                        List<XuexiaorenyuanEntity> xuexiaorenyuanEntities_username = xuexiaorenyuanService.selectList(new EntityWrapper<XuexiaorenyuanEntity>().in("username", seachFields.get("username")));
                        if(xuexiaorenyuanEntities_username.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(XuexiaorenyuanEntity s:xuexiaorenyuanEntities_username){
                                repeatFields.add(s.getUsername());
                            }
                            return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                         //学校人员手机号
                        List<XuexiaorenyuanEntity> xuexiaorenyuanEntities_xuexiaorenyuanPhone = xuexiaorenyuanService.selectList(new EntityWrapper<XuexiaorenyuanEntity>().in("xuexiaorenyuan_phone", seachFields.get("xuexiaorenyuanPhone")));
                        if(xuexiaorenyuanEntities_xuexiaorenyuanPhone.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(XuexiaorenyuanEntity s:xuexiaorenyuanEntities_xuexiaorenyuanPhone){
                                repeatFields.add(s.getXuexiaorenyuanPhone());
                            }
                            return R.error(511,"数据库的该表中的 [学校人员手机号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                         //学校人员身份证号
                        List<XuexiaorenyuanEntity> xuexiaorenyuanEntities_xuexiaorenyuanIdNumber = xuexiaorenyuanService.selectList(new EntityWrapper<XuexiaorenyuanEntity>().in("xuexiaorenyuan_id_number", seachFields.get("xuexiaorenyuanIdNumber")));
                        if(xuexiaorenyuanEntities_xuexiaorenyuanIdNumber.size() >0 ){
                            ArrayList<String> repeatFields = new ArrayList<>();
                            for(XuexiaorenyuanEntity s:xuexiaorenyuanEntities_xuexiaorenyuanIdNumber){
                                repeatFields.add(s.getXuexiaorenyuanIdNumber());
                            }
                            return R.error(511,"数据库的该表中的 [学校人员身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());
                        }
                        xuexiaorenyuanService.insertBatch(xuexiaorenyuanList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }

    /**
    * 登录
    */
    @IgnoreAuth
    @RequestMapping(value = "/login")
    public R login(String username, String password, String captcha, HttpServletRequest request) {
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectOne(new EntityWrapper<XuexiaorenyuanEntity>().eq("username", username));
        if(xuexiaorenyuan==null || !xuexiaorenyuan.getPassword().equals(password))
            return R.error("账号或密码不正确");
        String token = tokenService.generateToken(xuexiaorenyuan.getId(),username, "xuexiaorenyuan", "学校人员");
        R r = R.ok();
        r.put("token", token);
        r.put("role","学校人员");
        r.put("username",xuexiaorenyuan.getXuexiaorenyuanName());
        r.put("tableName","xuexiaorenyuan");
        r.put("userId",xuexiaorenyuan.getId());
        return r;
    }

    /**
    * 注册
    */
    @IgnoreAuth
    @PostMapping(value = "/register")
    public R register(@RequestBody XuexiaorenyuanEntity xuexiaorenyuan, HttpServletRequest request) {
//    	ValidatorUtils.validateEntity(user);
        Wrapper<XuexiaorenyuanEntity> queryWrapper = new EntityWrapper<XuexiaorenyuanEntity>()
            .eq("username", xuexiaorenyuan.getUsername())
            .or()
            .eq("xuexiaorenyuan_phone", xuexiaorenyuan.getXuexiaorenyuanPhone())
            .or()
            .eq("xuexiaorenyuan_id_number", xuexiaorenyuan.getXuexiaorenyuanIdNumber())
            ;
        XuexiaorenyuanEntity xuexiaorenyuanEntity = xuexiaorenyuanService.selectOne(queryWrapper);
        if(xuexiaorenyuanEntity != null)
            return R.error("账户或者学校人员手机号或者学校人员身份证号已经被使用");
        xuexiaorenyuan.setCreateTime(new Date());
        xuexiaorenyuanService.insert(xuexiaorenyuan);

        return R.ok();
    }

    /**
     * 重置密码
     */
    @GetMapping(value = "/resetPassword")
    public R resetPassword(Integer  id, HttpServletRequest request) {
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectById(id);
        xuexiaorenyuan.setPassword("123456");
        xuexiaorenyuanService.updateById(xuexiaorenyuan);
        return R.ok();
    }

	/**
	 * 修改密码
	 */
	@GetMapping(value = "/updatePassword")
	public R updatePassword(String  oldPassword, String  newPassword, HttpServletRequest request) {
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectById((Integer)request.getSession().getAttribute("userId"));
		if(newPassword == null){
			return R.error("新密码不能为空") ;
		}
		if(!oldPassword.equals(xuexiaorenyuan.getPassword())){
			return R.error("原密码输入错误");
		}
		if(newPassword.equals(xuexiaorenyuan.getPassword())){
			return R.error("新密码不能和原密码一致") ;
		}
        xuexiaorenyuan.setPassword(newPassword);
		xuexiaorenyuanService.updateById(xuexiaorenyuan);
		return R.ok();
	}



    /**
     * 忘记密码
     */
    @IgnoreAuth
    @RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request) {
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectOne(new EntityWrapper<XuexiaorenyuanEntity>().eq("username", username));
        if(xuexiaorenyuan!=null){
            xuexiaorenyuan.setPassword("123456");
            xuexiaorenyuanService.updateById(xuexiaorenyuan);
            return R.ok();
        }else{
           return R.error("账号不存在");
        }
    }


    /**
    * 获取用户的session用户信息
    */
    @RequestMapping("/session")
    public R getCurrXuexiaorenyuan(HttpServletRequest request){
        Integer id = (Integer)request.getSession().getAttribute("userId");
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectById(id);
        if(xuexiaorenyuan !=null){
            //entity转view
            XuexiaorenyuanView view = new XuexiaorenyuanView();
            BeanUtils.copyProperties( xuexiaorenyuan , view );//把实体数据重构到view中

            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }
    }


    /**
    * 退出
    */
    @GetMapping(value = "logout")
    public R logout(HttpServletRequest request) {
        request.getSession().invalidate();
        return R.ok("退出成功");
    }



    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        CommonUtil.checkMap(params);
        PageUtils page = xuexiaorenyuanService.queryPage(params);

        //字典表数据转换
        List<XuexiaorenyuanView> list =(List<XuexiaorenyuanView>)page.getList();
        for(XuexiaorenyuanView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        XuexiaorenyuanEntity xuexiaorenyuan = xuexiaorenyuanService.selectById(id);
            if(xuexiaorenyuan !=null){


                //entity转view
                XuexiaorenyuanView view = new XuexiaorenyuanView();
                BeanUtils.copyProperties( xuexiaorenyuan , view );//把实体数据重构到view中

                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody XuexiaorenyuanEntity xuexiaorenyuan, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,xuexiaorenyuan:{}",this.getClass().getName(),xuexiaorenyuan.toString());
        Wrapper<XuexiaorenyuanEntity> queryWrapper = new EntityWrapper<XuexiaorenyuanEntity>()
            .eq("username", xuexiaorenyuan.getUsername())
            .or()
            .eq("xuexiaorenyuan_phone", xuexiaorenyuan.getXuexiaorenyuanPhone())
            .or()
            .eq("xuexiaorenyuan_id_number", xuexiaorenyuan.getXuexiaorenyuanIdNumber())
//            .notIn("xuexiaorenyuan_types", new Integer[]{102})
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        XuexiaorenyuanEntity xuexiaorenyuanEntity = xuexiaorenyuanService.selectOne(queryWrapper);
        if(xuexiaorenyuanEntity==null){
            xuexiaorenyuan.setCreateTime(new Date());
            xuexiaorenyuan.setPassword("123456");
        xuexiaorenyuanService.insert(xuexiaorenyuan);

            return R.ok();
        }else {
            return R.error(511,"账户或者学校人员手机号或者学校人员身份证号已经被使用");
        }
    }

}

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

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

相关文章

PaddleOCR文字识别模型的FineTune

一、paddleOCR paddle框架为百度开发的深度学习框架&#xff0c;其中对于文字检测、识别具有较为便利的开发条件。同时PaddleOCR文字识别工具较为轻量化&#xff0c;并可按照任务需求进行model的finetune&#xff0c;满足实际的业务需求。 源码来源&#xff1a;githubOCR 在gi…

【数据库初阶】Ubuntu 环境安装 MySQL

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; 数据库初阶 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 Ubuntu 系统安装 MySQL 的相关内容。 如果看到最后您觉得这篇…

MoH:将多头注意力(Multi-Head Attention)作为头注意力混合(Mixture-of-Head Attention)

摘要 https://arxiv.org/pdf/2410.11842? 在本文中&#xff0c;我们对Transformer模型的核心——多头注意力机制进行了升级&#xff0c;旨在提高效率的同时保持或超越先前的准确度水平。我们表明&#xff0c;多头注意力可以表示为求和形式。鉴于并非所有注意力头都具有同等重…

AI助力古诗视频制作全流程化教程

AI助力古诗视频制作全流程化教程 目录 1. 制作视频的原材料&#xff08;全自动&#xff09; 2.文生图&#xff1a;图像生成&#xff08;手动&#xff09; 3.文生音频&#xff1a;TTS技术&#xff08;全自动&#xff09; 4.视频编辑&#xff08;手动&#xff09; 5.自动发…

基于SSM的“快递管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“快递管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登陆页面 注册页面 快递员页面 派单员订单管理页面 派单员订单添…

AWTK 在全志 tina linux 上支持 2D 图形加速

全志 tina linux 2D 图形加速插件。 开发环境为 全志 Tina Linux 虚拟机。 1. 准备 下载 awtk git clone https://github.com/zlgopen/awtk.git下载 awtk-linux-fb git clone https://github.com/zlgopen/awtk-linux-fb.git下载 awtk-tina-g2d git clone https://github.co…

Unity游戏环境交互系统

概述 交互功能使用同一个按钮或按钮列表&#xff0c;在不同情况下显示不同的内容&#xff0c;按下执行不同的操作。 按选项个数分类 环境交互系统可分为两种&#xff0c;单选项交互&#xff0c;一般使用射线检测&#xff1b;多选项交互&#xff0c;一般使用范围检测。第一人…

线性直流电流

电阻网络的等效 等效是指被化简的电阻网络与等效电阻具有相同的 u-i 关系 (即端口方程)&#xff0c;从而用等效电阻代替电阻网络之后&#xff0c;不 改变其余部分的电压和电流。 串联等效&#xff1a; 并联等效&#xff1a; 星角变换 若这两个三端网络是等效的&#xff0c;从任…

攻防世界web第二题unseping

这是题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {cal…

[文献阅读]ReAct: Synergizing Reasoning and Acting in Language Models

文章目录 摘要Abstract:思考与行为协同化Reason(Chain of thought)ReAct ReAct如何协同推理 响应Action&#xff08;动作空间&#xff09;协同推理 结果总结 摘要 ReAct: Synergizing Reasoning and Acting in Language Models [2210.03629] ReAct: Synergizing Reasoning an…

ISDP010_基于DDD架构实现收银用例主成功场景

信息系统开发实践 &#xff5c; 系列文章传送门 ISDP001_课程概述 ISDP002_Maven上_创建Maven项目 ISDP003_Maven下_Maven项目依赖配置 ISDP004_创建SpringBoot3项目 ISDP005_Spring组件与自动装配 ISDP006_逻辑架构设计 ISDP007_Springboot日志配置与单元测试 ISDP008_SpringB…

Linux -- 从抢票逻辑理解线程互斥

目录 抢票逻辑代码&#xff1a; thread.hpp thread.cc 运行结果&#xff1a; 为什么票会抢为负数&#xff1f; 概念前言 临界资源 临界区 原子性 数据不一致 为什么数据不一致&#xff1f; 互斥 概念 pthread_mutex_init&#xff08;初始化互斥锁&#xff09; p…

1.微服务灰度发布落地实践(方案设计)

前言 微服务架构中的灰度发布&#xff08;也称为金丝雀发布或渐进式发布&#xff09;是一种在不影响现有用户的情况下&#xff0c;逐步将新版本的服务部署到生产环境的策略。通过灰度发布&#xff0c;你可以先将新版本的服务暴露给一小部分用户或特定的流量&#xff0c;观察其…

从 Coding (Jenkinsfile) 到 Docker:全流程自动化部署 Spring Boot 实战指南(简化篇)

前言 本文记录使用 Coding (以 Jenkinsfile 为核心) 和 Docker 部署 Springboot 项目的过程&#xff0c;分享设置细节和一些注意问题。 1. 配置服务器环境 在实施此过程前&#xff0c;确保服务器已配置好 Docker、MySQL 和 Redis&#xff0c;可参考下列链接进行操作&#xff1…

丢失的MD5

丢失的MD5 源代码&#xff1a; import hashlib for i in range(32,127):for j in range(32,127):for k in range(32,127):mhashlib.md5()m.update(TASCchr(i)O3RJMVchr(j)WDJKXchr(k)ZM)desm.hexdigest()if e9032 in des and da in des and 911513 in des:print des 发现给…

基于51单片机的交通灯外部中断proteus仿真

地址&#xff1a; https://pan.baidu.com/s/1WSlta_7pz5HdWsyIGoviHg 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52/AT89C51简介&#xff1a; AT89C52/AT89C51是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectro…

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发&#xff1a; web&#xff0c;网页的意思&#xff0c;www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化&#xff01; 动态 web 淘宝&#xff0c;几乎是所有的网站&#xff1b;提供给所有人看的数据始终会发生变化&#xf…

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称&#xff0c;被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而&#xff0c;要写出高性能的 C 语言代码&#xff0c;需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术&#xff0c;并通过…

C语言-数据结构-查找

目录 一,查找的概念 二,线性查找 1,顺序查找 2,折半查找 3,分块查找 三,树表的查找 1,二叉排序树 (1)查找方式: (2)、二叉排序树的插入和生成 (3)、二叉排序树的删除 2,平衡二叉树 (1)、什么是平衡二叉树 (2)、平衡二叉树的插入调整 &#xff08;1&#xff09;L…

[江科大编程技巧] 第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式——笔记

提前声明——我只是写的详细其实非常简单&#xff0c;不要看着多就放弃学习&#xff01; 阻塞&#xff1a;执行某段程序时&#xff0c;CPU因为需要等待延时或者等待某个信号而被迫处于暂停状态一段时间&#xff0c;程序执行时间较长或者时间不定 非阻塞&#xff1a;执行某段程…