问题Bug

一:npm ERR! code ERR_SOCKET_TIMEOUT
       npm ERR! errno ERR_SOCKET_TIMEOUT

解决:先执行一次npm install rxjs,再次执行npm install vue-cl

二:Vue中路径中有#/

解决:在router文件中的index.js

const router = new VueRouter({
  mode: 'history',
  routes
})

三,在使用postman进行请求时,如果参数是对象

Content type 'multipart/form-data;boundary=--------------------------496238283102520395700876;

解决:(1)将请求中的@RequestBoby去掉

(2):在postman中选中boby中的json格式,以json的形式传入对象

四,在配置Shiro类

No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton.  This is an invalid application configuration.

 解决:在Shiro配置类中可能是少注解,@Bean

五,在自己编写jwt时,需要在MyRealm中添加

 用JwtToken来代替Shiro中系统的Token,

 @Override
    //获得自己定义的token
    public boolean supports(AuthenticationToken token) {
        return token instanceof JwtToken;
    }

六,在shiro整合Redis时,hostname is null

原因可能是在yaml中Redis的配置位置放置的不正确

Redis是spring的下一级的位置 

七,如果postman中对需要认证的请求是不符合逻辑 ,而在页面上是符合逻辑的,

这是两种不同的显示结果。

解决:是因为postman没有进行登录操作,只要进行登录就能和页面是同样的显示结果。

八,在验证注解切面时,加强业务不能实现。

解决:在验证时,不能使用简单主函数进行检测,而是使用@Autowried方法,再调用正式的业务逻辑事务。 

九,在启动vue项目时,一直在启动的状态,但启动初始化一直进行。

解决:不是项目本身的问题

  • vue的路径问题
  • vue中标签问题,是否写<div>标签,
  • vue中书写小问题 

十,Nginx报错:nginx: [error] OpenEvent("Global\ngx_reload_14944") failed (2: The system cannot find the file specified) 解决:是因为没有nginx要在启动后才能reload

Nginx 尚未启动导致,执行 start nginx 命令开启Nginx

nginx.exe -s reload

十一,在使用nginx时,配置都是正确的情况下,就是本地地址转换不到本地的端口时,

需要重启计算机,再重新启动项目。 

十二,在使用springboot vue,mysql时,拥有数据绑定出现:java.sql.SQLSyntaxErrorException: Unknown column 'XXX' in 'field list'。

在数据库中如果是多个字符串联,如oldFileName需要写成old_file_name

在springboot后端实体字段中可以用oldFileName进行映射,在vue中表格字段绑定的依据是与springBoot中实体类进行绑定的

补:vue中集合table[],只要与后端的返回的数据是list集合即可

然后table中的字段将绑定list集合中的数据字段进行对应即可,无需其他操作 

十二,cannot add foregin key,

解决:使用因为外键的字段类型申明,数据表中的编码等问题,只要改为一直即可 

 十三,安装linux后,需要配置外网(选择VMnet8)

 选择适配器为NAT

2,在编辑中查看虚拟网络编译器

3,在NAT中查看网关

 

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

5,添加或修改

BOOTPROTO,ONBOOT,IPADDR,NETMASK,GATEWAY,DNS1,

其中IPADDR是上述网关的子段,就是最后一位小于网关IP即可 

注意:IPADDR是192.168.229.129,不是192.168.299.129

6,需要重启

systemctl restart network 

十四,当虚拟机不能ping,一定要执行该语句

[root@kvm ~]#systemctl stop NetworkManager
[root@kvm ~]#systemctl disable NetworkManager
[root@kvm ~]#systemctl restart  network

[root@kvm ~]#systemctl  restart NetworkManager
[root@kvm ~]#systemctl restart  network
重启之后,网络恢复正常

十五,当ip addr 没有ip地址时,

解决:dhclient ens33命令

十五,有关虚拟机的联网问题的终极版

  1.  将虚拟机的适配器变成net模式
  2. vi /etc/sysconfig/network-scripts/ ifcfg-ens33
  3. 首先不需要设置成静态,而是要先设置成动态dhcp,ONBOOT=yes即可,其他的地址,网关,掩码,DNS都不要加
  4. 重启网络:systemctl restart network,若不能重启,则使用systemctl stop NetworkManager  和 systemctl distable NetworkManager,然后再重启systemctl restart network
  5. 说明:再出现错误不需要管,继续下一步的操作
  6. ip addr命令查看inet
  7. 再次进入vi /etc/sysconfig/network-scripts/ ifcfg-ens33
  8. 修改成静态网址
  9. 其中最重要的是ipADDR要与inet是一致的
  10. 重启网络如步骤5,
  11. 此时如果还有错误,但还是能够ping www.baidu.com
  12. 当初始化ip addr中没有ens33下地址,可以使用dhclient ens33就能够再次出现ip地址,放dhlient ens33没有作用时,可以使用reboot进行重启操作,然后在使用dhclient ens33命令,即可上网

十六,如果由于某种原因想要指定的IPADDR=192.168.229.129,需要

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

更改IPADDR

然后一定让ens33生效,就要使用dhclient ens33命令

此时ip addr 就要出现

192.168.229.132是自动生成的

192.168.229.129是我自己设置

最后就可以ping www.baidu.com 

 十七,在安装CentOS7时出现Disk自动失败

要找到安装Centos位置文件夹

注意:删除的是.lck文件而不是文件夹

 十八,解决yum服务中不能下载问题

终极操作:将etc/yum.repos.d/所有文件全部删除,换成正常的文件即可,不需要做其他任何操作

  1. 在 etc/yum.repos.d/ 下所有的文件都删除掉
  2. 在一台正常的系统中将etc/yum.repos.d/下的所有文件复制给有问题的系统中
  3. 不正常文件
  4. 正常文件

十九,在idea中创建多服务模块,

  1. 创建maven项目,把多余的src掉,保留pom.xml和.idea
  2. 在模块中建立java,maven,springboot都可以
  3. 当需要建立springboot项目时,一定要在父项目的pom.xml中下写《modul》将子模块引入进去,不让springboot项目不能启动,非常关键, 
  4. 在springboot项目中只保留,src pom.xml gitignore三个文件即可
  5. 使用git clone 的话要将文件里面.git文件删除

 二十,org.springframework.beans.factory.annotation.Autowired(required=true)

解决:1,查看主程序的位置,不在业务逻辑包内

2,在主程序中扫描Mapper的路径是否有问题

 

二十一,在安装nacos时,由于安装的配置都改好了,但是还是不行,就下载1.1.4的版本,因为使用最新的版本导致一直安装不成功 

二十二,在springboot整合Redis出现outofdirectMemoryError 堆外内存溢出异常

          原因:lettuce出现了bug.netty没有指定堆外内存

          解决:使用jedis

 二十三,在使用Redis可能出现的问题。

情景1:缓存失效-缓存穿透-缓存不命中-缓存中不存在数据,而是去数据库访问,同时数据库中也不存在数据

       解决:将空结果进行缓存


情景2:缓存失效-缓存雪崩-由于给key设置的过期时间是一致的,导致某一时刻同时失效,而去访问数据库,导致数据库瞬时压力过大

        解决:在设置过期时间时,可以设置一个随机的过期时间,降低过期时间的重复率


情景3:缓存失效-缓存击穿-某一个key失效,但是却有大量的同时访问
       
       解决:加锁的方式-乐观锁


解决缓存击穿问题

情景1-本地锁:使用synchronized(this){逻辑代码}同步代码块,并在逻辑代码之前应该判断缓存是否有数据,没有 
       数据将重新加入内存。

问题1:每次只能锁住一个进程,在分布式中由于是多服务器,锁不住所有的服务器。
问题2:时序问题,不至一次访问数据库的现象。
解决:  将从数据库中得到数据后,放入缓存中,然后再释放锁。而不是去访问数据库时,释放锁,然后再放 
       入缓存中


情景2-分布锁:从redis角度设置锁setnx=setIfAbsent。执行的流程:占锁-业务逻辑-删除锁

问题1:在删除锁之前出现了宕机,锁一直没有删除

解决1:将锁设置自动过期时间,并且在设立锁与过期时间在一起,防止出现宕机,来保证原子性。

问题2:在删除锁时,锁已经过期,业务超时,来保证删除的是同一把锁。

解决2:使用lua脚本,保证原子性删除


情景3-框架redisson来构造分布式锁

方式1-可重入锁(reentrant lock)
      (1)lock上锁,采用阻塞式等待.
      (2)上锁后可以自动续期,如果业务时间过长,自动续上30秒,不用担心,由于业务时间过长,锁被 
         自动删除,当业务完成后,锁在30秒也会被删除。但是如果自己设置时间,但是不会自动续期。

方式2-读写锁(readwriterlock)
       (1)读数据加读锁,改数据加写锁
       (2)读数据要在写数据完成后才能读,一定能读到最新数据。
       (3)读+读:相当于是无锁的状态
       (4)读+写:有读时,写还是需要等待
总之,当有写锁时,不断是先读还是后读,都需要进行等待

方式3-闭锁(CountdownLatch)

情景4-锁的粒度(锁的范围大小),越细越快

情景5-数据的一致性-双写模式:数据库中数据修改后,向缓存中修改。

问题:产生脏数据,出现数据延迟的现象,但是在最后都可以保证数据的一致性。
 
数据的一致性-失效模式

解决:使用canal,相当于数据库的从数据库,当数据库中的改变时,就会将缓存数据发生改变
     
















二十四,热部署-实时更新页面

操作一;因为Devtool依赖

操作二:将thmeleaf缓存关闭

二十六,fengin请求丢失

描述:在fengin进行远程调用时会启动新的请求,但是这个请求没有带请求头,无法将以前的请求头携带过来

解决:fengin远程调用的拦截器-将老请求的cookie放到新请求中

 步骤1:创建requestIntercept返回类

 步骤2:重写apply(requesttemplate)方法

  步骤3:使用requestcontextHolder.getrequestattributes()方法得到请求,并进行强转成 
         sevrletrequestattribute

  步骤4:sevrletrequestattribute.getquest()方法就能等到老请求了,此时转为httprequest类

  步骤5:httprequest.getheader("cookie")拿到老请求的cookie

   步骤6:requesttemplate.header("cookie",老请求的cookie);给新请求进行加上cookie


总结:requestcontextHolder->sevrletrequestattribute->httprequest->getheader


描述:fengin丢失上下文问题

原因:线程不一样

解决:公用一个线程

步骤1:在实现异步线程之前添加:requestcontextHolder.getrequestattributes()不要强转得到 
       requestattribute类

步骤2:在异步线程里面添加:requestcontextattribute.setrequestattributes(requestattribute类)








 二十七:等幂性,防止多次提交

描述:防止多次提交,接口的幂等性

方式一:防重令牌(key-value)-在后端生成令牌给前端和服务器,然后进行匹配

步骤1:使用redis发原子性,当验证时通过就要进行删除,这是使用lua脚本。使用redistemplate.excute(new Defaultredisscripts<long>(脚本,long.class),arrays.aslist(key),对比的value);

二十八,idea中自己设置的仓库不可以使用了,

https://blog.csdn.net/super1223/article/details/110822224

 二十九。‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件

https://blog.csdn.net/m0_57446284/article/details/121374171

mysql下载https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/

MySQL的安装:https://blog.csdn.net/m0_49284219/article/details/121972531

三十.xshell进行安装使用,破解版(在文件中使用绿化.bat后,先启动后就可以启动xshell.exe)

 https://blog.csdn.net/Saturn_Mentos/article/details/122310056

三十一.使用宝塔面板的安装(最好是在云服务器是纯净的版本下安装,不然会有一定的影响的)

1.需要通过:xshell进行连接云服务器

2.在自己的xshell进行安装包:命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

 3.bt命令提示符:可以使用14得到信息。

 三十二.前后端分离项目步骤

1.前端:npm run build

2.将dis文件复制到,后端的static文件中

 三十三.

 

三十四.当防火墙关闭一个端口时,使用navicat连接时,出现

 三十四。windows下在redis闪退

https://blog.csdn.net/qq_40361770/article/details/80454248

三十五。JAVA - 解决:Java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>

 三十六。

Syntax Error: Error: ENOENT: no such file or directory, scandir 'D:\vue\rn-bms-vue\node_modules\_node-sass@4.14.1@node-sass\vendor'

https://blog.csdn.net/levi_work/article/details/119866530

 三十七,数据库创建时间与更新时间在navicat中设计

其中CURRENT_TIMESTAMP是可以进行手动输入的

https://blog.csdn.net/Eternal_Blue/article/details/107929528

三十八. FirewallD is not running

https://blog.csdn.net/Amber_1/article/details/124845301

三十九。tk.mybatis.mapper.MapperException: 无法获取实体类XXX对应的表名!

在使用it.mybatis时:

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
    //TODO
    //FIXME 特别注意,该接口不能被扫描到,否则会出错
}

 (2)mapper Scan,引入的包有错误

应为springboot引入了spring security部分,而spring是自动开启安全模式的

 @SpringBootApplication(exclude={SecurityAutoConfiguration.class,SecurityFilterAutoConfiguration.class})

四十一.

 解决:开启服务

参考:navicat创建连接 2002-can‘t connect to server on .... - xiao智 - 博客园 (cnblogs.com)

四十二.

有登录页面,但是点击登录没有任何反应,这是因为没有接受到数据库,所以只要连接上数据库即可。 

 四十三:

在forest开源框架时,总是提示接口注入失败,其原因是引入的依赖是有问题的

正确的引入依赖:

  <dependency>
            <groupId>com.dtflys.forest</groupId>
            <artifactId>forest-spring-boot-starter</artifactId>
            <version>1.5.26</version>
        </dependency>

四十四.由于修改编码导致yaml文件有错误,length=2最终导致springBoot启动不了,

解决:修改编码为utf-8,然后重新rebuild project即可。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值