• 首页
  • NCRE
    • 二级C程序设计
    • 三级数据库技术
      • 核心知识梳理
      • 题库知识必背
    • 三级网络技术
    • 四级数据库原理
    • 四级操作系统
      • 核心知识梳理
      • 题库知识必背
    • 题库软件资源
  • CS基础知识
    • 数据结构
      • 每日一题
    • 操作系统
    • 计算机网络
    • 数据库技术
    • 汇编语言
    • 编译原理
  • 编程代码
    • C语言
    • Python
      • 办公自动化
      • 爬虫
      • 数据分析
      • GUI
      • WEB开发
    • Java
      • Spring
      • SpringMVC
      • SpringBoot
      • Mybatis
      • Mybatis-Plus
      • Shiro
      • Java微信公众平台开发
    • JavaScript
    • CSS
    • HTML
    • Linux
    • SQL
    • 易语言
    • Git
      • Git学习
    • 每日一题
  • 资源分享
    • 软件资源
    • 网站分享
    • 其他资源
    • JavaInterview
  • 问题解决
    • BUG处理
    • 教程记录
    • 常用技巧
    • 随时笔记
  • 生活记录
    • 关于我
    • 关于站点
    • 留言建议
    • 关于学习
    • 成长感悟
    • 随时笔记
    • 杂七杂八
编程那点事儿

搜索内容

  • 首页
  • NCRE
    • 二级C程序设计
    • 三级数据库技术
      • 核心知识梳理
      • 题库知识必背
    • 三级网络技术
    • 四级数据库原理
    • 四级操作系统
      • 核心知识梳理
      • 题库知识必背
    • 题库软件资源
  • CS基础知识
    • 数据结构
      • 每日一题
    • 操作系统
    • 计算机网络
    • 数据库技术
    • 汇编语言
    • 编译原理
  • 编程代码
    • C语言
    • Python
      • 办公自动化
      • 爬虫
      • 数据分析
      • GUI
      • WEB开发
    • Java
      • Spring
      • SpringMVC
      • SpringBoot
      • Mybatis
      • Mybatis-Plus
      • Shiro
      • Java微信公众平台开发
    • JavaScript
    • CSS
    • HTML
    • Linux
    • SQL
    • 易语言
    • Git
      • Git学习
    • 每日一题
  • 资源分享
    • 软件资源
    • 网站分享
    • 其他资源
    • JavaInterview
  • 问题解决
    • BUG处理
    • 教程记录
    • 常用技巧
    • 随时笔记
  • 生活记录
    • 关于我
    • 关于站点
    • 留言建议
    • 关于学习
    • 成长感悟
    • 随时笔记
    • 杂七杂八
  • VMware 安装CentOS后 ens33 网卡异常

    执行命令:dhclient ens33

    dhclient ens33命令用于在CentOS系统上启动DHCP客户端,以获取网络接口ens33的IP地址、子网掩码、网关和DNS服务器等网络配置信息。DHCP客户端将向DHCP服务器发送DHCP请求,以获取这些信息,以便正确地配置网络接口。DHCP客户端是在系统启动时自动运行的,但也可以在需要时手动运行。

    怎么样让DHCP客户端自动启动

    要让DHCP客户端自动启动,可以按照以下步骤进行操作:

    1. 打开终端,并以root用户身份登录系统。

    2. 编辑网络配置文件,输入以下命令:

    vi /etc/sysconfig/network-scripts/ifcfg-ens33

    其中,ens33是你的网络接口名称,具体名称可能因系统而异。

    3. 在文件中添加以下行:

    BOOTPROTO=dhcp

    这将告诉系统使用DHCP客户端自动获取网络配置信息。

    4. 保存并退出文件。

    5. 重启网络服务,输入以下命令:

    systemctl restart network

    这将使系统重新启动网络服务,并自动运行DHCP客户端以获取网络配置信息。

    完成以上步骤后,系统将在每次启动时自动运行DHCP客户端,并获取网络配置信息。

    补充

    如果经过上边的操作,仍然不能解决问题可以尝试以下解决方案,可以按照以下步骤解决此问题:

    1. 在VMware虚拟机中,打开CentOS操作系统。

    2. 打开终端并输入以下命令:

    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

    3. 在打开的文件中,找到以下行:

    ONBOOT="no"

    4. 将其更改为:

    ONBOOT="yes"

    5. 保存并关闭文件。

    6. 输入以下命令以重启网络服务:

    sudo systemctl restart network

    7. 现在,您的网络配置应该在每次启动时自动加载,无需手动运行dhclient命令。

    如果以上步骤无法解决问题,请检查您的VMware虚拟网络设置是否正确,并确保CentOS操作系统已正确配置以使用VMware虚拟网络适配器。

    2023年4月14日20:09

  • mybatis-plus 配置时间字段自动填充

    MyBatis-Plus 提供了自动填充(AutoFill)功能,可以在插入或者更新数据时自动填充某些字段,比如创建时间和更新时间。

    首先要在表中定义一个创建时间和更新时间的字段,通常我们使用 DATETIME 类型。

    然后在实体类中定义这两个属性,使用 @TableField 注解来指定属性和表中字段的映射关系,并且使用 @TableLogic 注解来标示逻辑删除字段(如果有需要):

    public class User {
        
        @TableId
        private Long id;
        
        private String name;
        
        @TableField(fill = FieldFill.INSERT) // 创建时间在插入时自动填充
        private LocalDateTime createTime;
        
        @TableField(fill = FieldFill.UPDATE) // 更新时间在更新时自动填充
        private LocalDateTime updateTime;
        
        @TableLogic // 标记逻辑删除字段
        private Integer deleted;
        
        // setter/getter 省略  
    }

     

    接着,需要配置自动填充处理器(MetaObjectHandler),可以在其中指定某些列的填充值。比如我们可以在插入时自动填充创建时间,更新时间,更新人(根据实际情况可以只填充一部分):

    @Configuration
    public class MybatisPlusConfig {
    
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
            return interceptor;
        }
    
        @Bean
        public MetaObjectHandler metaObjectHandler() {
            return new MyMetaObjectHandler();
        }
    }
    
    public class MyMetaObjectHandler implements MetaObjectHandler {
    
        // 插入时自动填充
        @Override
        public void insertFill(MetaObject metaObject) {
            LocalDateTime now = LocalDateTime.now();
            this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, now);
            this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, now);
            this.strictInsertFill(metaObject, "createUser", Long.class, CurrentUser.id()); // 也可以填充其他属性
        }
        
        // 更新时自动填充
        @Override
        public void updateFill(MetaObject metaObject) {
            this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
        }
    }

     

    注入自定义的 MetaObjectHandler 之后,当执行插入或更新操作时,自动填充处理器会自动为指定的列填充值。

    最后别忘了在应用程序启动时执行 MybatisPlusConfig 这个类中的 bean 创建过程。

    2023年4月13日16:09

  • 查看 Linux 操作系统相关信息

    1. 查看操作系统版本信息:cat /etc/os-release
    2. 查看内核版本信息:uname -a
    3. 查看 CPU 信息:/proc/cpuinfo
    4. 查看内存信息:/proc/meminfo
    5. 查看磁盘使用情况:df -h
    6. 查看网络接口信息:ifconfig
    7. 查看系统启动时间:uptime
    8. 查看系统日志:tail -f  /var/log/messages

    2023年4月5日21:50

  • 解决bash提示字符bash-4.2#的问题

    在Linux中,命令提示符是指在终端中输入命令时显示的符号。默认情况下,Linux中的命令提示符通常是$符号,表示普通用户权限。而如果以root用户身份登录系统,则命令提示符通常是#符号,表示超级用户权限。

    如果在Linux中登录后命令提示符显示bash-4.2#,这通常是因为系统使用的是bash(Bourne-Again SHell)作为默认的命令行解释器,而bash版本号为4.2。而#符号则表示当前用户是以超级用户权限登录系统的。

    因此,bash-4.2#命令提示符表示当前用户是以root用户身份登录系统,并且使用的是bash 4.2版本的命令行解释器。

    之所以会登录后出现[root@localhost ~]#的提示字符,是因为系统默认设置的变量中包含了命令提示字符即PS1的设置,而在login shell后会加载宿主目录下的.bashrc文件去读取变量设置。那么登录后显示bash-4.2#的原因就是删除了宿主目录下的.bashrc文件。

    以root用户为例

    bash-4.2# cp /etc/skel/.bashrc /root //拷贝文件至宿主目录下
    bash-4.2# source ~/.bashrc //利用source将配置文件内容读取至当前的shell环境

     

    2023年4月4日18:14

  • IDEA Maven Cannot access defaults field of Properties 解决方案

    使用maven打包Javaweb程序,也就是<packaging>war</packaging>时,需要在pom.xml 增加插件:

    <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.3.1</version>
    </plugin>

     

     

    2023年3月14日9:06

  • NGINX代理且前后端分离时,后端获取客户端真实IP

    server {
        listen 443;
            server_name www.*.com;
            root /opt;
            index index.html index.php;
            
            location /api {
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header REMOTE-HOST $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_pass http://127.0.0.1:8087;
            }
    } 
    

     

    2023年3月5日13:06

  • java.lang.NullPointerException:inStream parameter is null错误的解决办法

    将配置文件放在src目录下,启动程序后,获取不到配置文件链接,会提示 "inStream parameter is null "

    通过搜索,找到解决方案:将配置文件放在resources文件夹下。

    原因:使用ClassLoder读取配置文件,该方式只能读取类路径下的配置文件,所以一般需要将配置文件放在类路径目录下,即resources下。

    拓展:基于 InputStream 读取配置文件,该方式的优点在于可以读取任意路径下的配置文件。

    properties.load(new BufferedReader(new FileReader("src/main/resources/jdbc.properties")));

     

    2023年2月11日15:16

  • 让 HTML识别 '\n' 并成功换行显示

    css 设置:

    white-space: pre-line;
    

     

    2023年2月11日10:21

  • 全站页面成灰色调(黑白色)

    /* 全站页面成灰色调(黑白色) */
    html {
    	filter: grayscale(100%);
    	-webkit-filter: grayscale(100%);
    	-moz-filter: grayscale(100%);
    	-ms-filter: grayscale(100%);
    	-o-filter: grayscale(100%);
    	filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale");
    	filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
    	-webkit-filter: grayscale(1);
    }

     

    2022年12月1日9:06

  • springboot2.7.X 集成Swagger3启动报错

    项目启动报如下异常:

    Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException

     

    问题分析:

    Springboot2.6以后将SpringMVC 默认路径匹配策略从AntPathMatcher 更改为PathPatternParser,导致出错

    解决方案:

    在配置文件application.properties中加入以下配置:

    spring:
      mvc:
        pathmatch:
          matching-strategy: ant_path_matcher
    

     

     

    2022年11月30日16:31

  • 注意:使用Swagger访问Restful接口路径参数

    需要使用@ApiImplicitParam注解,并且指定paramType="path" 即可。参考案例:

    @ApiOperation("根据QID获取单个面试题目详细信息")
        @ApiImplicitParams({
                @ApiImplicitParam(paramType = "header", name = "Authorization", value = "Token", required = true,dataType = "String"),
                @ApiImplicitParam(paramType = "path", name = "qid", value = "查询题目ID", required = true)
        })
        @GetMapping("/{qid}")
        public R getQuestionById(@PathVariable("qid")
                                     @Min(value = 1, message = "题目ID不得为负数") Long qid){
            
        }

     

    2022年11月13日15:53

  • npm install --save

    1. npm install:本地安装

    2. npm install -g:全局安装

    我们在使用 npm install 安装模块或插件时,有两种命令把它们写入到 package.json 文件中去,在 package.json 里面体现出的区别就是,使用 --save 安装的插件,会被写入到 dependencies (需要发布到生产环境)对象里面去,使用 --save -dev 安装的插件,会被写入到 devDependencies (这里的插件只用于开发环境)对象里面去。

    3. npm install --save:dependencies 运行时的依赖

    4. npm install --save -dev:devDependencies 开发时的依赖

    npm install --save 和 npm install --save -dev 可以省掉你手动修改 package.json 文件的步骤。

    使用原则:

    运行时使用的包用 npm install --save, 否则使用 npm install --save -dev.

    2022年11月12日1:36

  • Docker 启动/重启容器报错

    driver failed programming external connectivity on endpoint mysql......

    解决办法:

    systemctl restart docker

    重启Docker服务即可。

    2022年11月5日12:37

  • IDEA 自定义方法注释模板

    1.修改类头的文档注释信息

    操作步骤:Setting – Editor – File and Code Templates

    参考模板:

    /**
     * @Classname ${NAME}
     * @Description TODO
     * @Date ${DATE} ${TIME}
     * @Created by YJS
     * @WebSite www.imyjs.cn
     */

     

    2.方法注释:

    操作步骤:

    打开file->setting->Editor->LiveTemplates 点击右边上面那个+号,选择Template Group,然后弹出一个窗口,起名字,比如MyGroup然后点击OK

    在file->setting->Editor->LiveTemplates这个路径下点击一下刚刚你添加的那个名字MyGroup,然后点击右边上面那个+号,选择LiveTemplate,填写下面的图上的框

    参考模板:

    **  
     * $end$
     *
    $params$
     * @return $return$
     * @throws $throws$
     * @Description    
     * @Author YJS
     * @Date Created in $date$ $time$
     * @WebSite www.imyjs.cn
     */

     

    params的值为:groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\\n':'')}; return result", methodParameters()) 

    return值为:groovyScript("if(\"${_1}\" == 'void') {return '';} else { def returnType = \"${_1}\"; def result ='\\n' + ' * @return {@link ' + returnType + ' }'; return result;}", methodReturnType());

    date值为:date()

    time值为:time()

    2022年11月4日21:48

  • spring-boot-configuration-processor 的作用

    这个包的作用是生成配置元数据,比如平常在yml文件里面配置
    其实是一个注解处理器,在编译阶段干活的,一般在maven的声明都是optional为true
    官网解释:
    通过使用spring boot配置处理器jar,您可以从用@ConfigurationProperties注释的项轻松生成自己的配置元数据文件。
    jar包含一个Java注释处理器,在编译项目时调用它。要使用处理器,请包含对spring boot配置处理器的依赖。

    详细作用示例:https://www.jianshu.com/p/ca22783b0a35

    2022年11月4日20:14

  • JAVA数据类型 和 MYSQL的数据类型转换,要注意tinyInt 类型,且存储长度为1的情况。

    修复方法

    1、tinyInt(1) 只用来代表Boolean含义的字段,且0代表False,1代表True。如果要存储多个数值,则定义为tinyInt(N), N>1。例如 tinyInt(2)

    2、JDBC的URL增加tinyInt1isBit=false参数,注意参数名区分大小写,否则不生效

    jdbc:mysql://${ucmha.proxy1_2.host}/${db.mysql.db}?tinyInt1isBit=false

    2022年10月31日12:49

  • npm常用命令

    npm安装配置相关:

    # 查看 npm 的版本
    $ npm -v   //6.4.0 << 安装成功会返回版本号

     

    # 查看各个命令的简单用法
    $ npm -l

     

    # 查看 npm 命令列表
    $ npm help

     

    # 查看 npm 安装目录
    $ npm root -g

     

    # 查看 npm 的配置
    $ npm config list -l

     

    # 查看当前npm cache和prefix路径
    $ npm config get cache
    $ npm config get prefix

     

    # 修改缓存路径
    $ npm config set cache "D:\Program Files\nodejs\npmCache"

     

    # 修改全局下载路径
    $ npm config set prefix "D:\Program Files\nodejs\npmGlobal"

     

    registry地址配置

    # 临时使用
    $ npm --registry https://registry.npm.taobao.org install express

     

    # 长期使用
    $ npm config set registry https://registry.npm.taobao.org
    $ npm config set registry http://registry.npmmirror.com

     

    # 配置后可通过下面方式来验证是否成功
    npm config get registry
    或
    $ npm info express

     

    # 通过cnpm使用
    $ npm install -g cnpm --registry=https://registry.npm.taobao.org

     

    // 还原默认的npm配置
    $ npm config set registry https://registry.npmjs.org

     

    install 安装模块

    # 读取package.json里面的配置单安装
    $ npm install
    //可简写成 npm i

    # 默认安装指定模块的最新(@latest)版本
    $ npm install [<@scope>/]<name>
    //eg:npm install gulp

    # 安装指定模块的指定版本
    $ npm install [<@scope>/]<name>@<version>
    //eg: npm install gulp@3.9.1

    # 安装指定指定版本范围内的模块
    $ npm install [<@scope>/]<name>@<version range>
    //eg: npm install vue@">=1.0.28 < 2.0.0"

    # 安装指定模块的指定标签 默认值为(@latest)
    $ npm install [<@scope>/]<name>@<tag>
    //eg:npm install sax@0.1.1

    # 通过Github代码库地址安装
    $ npm install <tarball url>
    //eg:npm install git://github.com/package/path.git

     

    uninstall 卸载模块

    #卸载当前项目或全局模块
    $ npm uninstall [-g]

    eg: npm uninstall gulp --save-dev
    npm i gulp -g

    # 卸载后,你可以到 /node\_modules/ 目录下查看包是否还存在,或者使用以下命令查看:
    $ npm ls #查看安装的模块

     

    update 更新模块

    #升级当前项目或全局的指定模块
    $ npm update [-g]
    //eg: npm update express
    npm update express -g

     

    清理缓存命令

    $ npm cache clean --force

     

    link 引用模块

    # 引用依赖 有些包是全局安装了,在项目里面只需要引用即可。
    $ npm link [<@scope>/][@]
    //eg: 引用 npm link gulp gulp-ssh gulp-ftp
    //eg: 解除引用 npm unlink gulp

    # 引用模块 本人用得少没深入说了 用得上时可去翻文档例子
    $ npm link (in package dir)

     

    publish 发布模块

    # 未注册 申请注册一个用户 直接在https://www.npmjs.com/注册一样
    $ npm adduser
    //执行后 填写几个问题 Username、Password、Email

    #已注册
    $ npm login

    #发布
    $ npm publish

    2022年10月24日10:34

  • Windows正确关闭Nginx服务:

    查看指定端口的进程占用情况:netstat -ano|findstr "80"

    查看指定进程的服务:tasklist|findstr "13640"

    关闭指定的进程:taskkill /pid 23312 /f

    查看nginx的进程占用情况:tasklist | find /i "nginx.exe" || exit

    关闭nginx的所有进程:taskkill /im nginx.exe /f

    2022年10月18日11:18

  • WordPress博客添加说说/心情/笔记页面
    参考文章:https://fairysen.com/277.html

    2022年10月18日10:44

   
感谢你的访问!
本站由 提供加速服务 编程那点事儿     编程那点事儿 编程那点事儿
  • 服务协议
  • 投诉指引
  • 隐私政策
  • 关于本站
  • 留言建议
  • 友情链接
  • 申请友链
  • 网站地图
  • 网络安全法
Copyright © 2025 编程那点事儿 Powered by WordPress

本次加载耗时:0.527s
豫ICP备2021023818号-1豫公网安备41092202000171号