您正在查看归档 2018年 下的文章

chrome浏览器获取百度bduss

作者: StoneWu  |  时间: 2018-05-14 16:23:52  |  
分类: 大杂烩  |  0 条评论  |  477 次浏览

自动签到需要百度的登录状态:BDUSS

获取方式如下:

使用chrome浏览器打开百度首页

然后点击地址栏的小绿锁标志

再点击下方的红色方块区域

在出现的弹框中如下图上方的红框中选中BDUSS

然后双击下方的红色框内容,ctrl+c复制,得到BDUSS

Spring Boot 使用 spring-boot-devtools 实现热加载时出现类型转换异常

作者: StoneWu  |  时间: 2018-10-10 18:14:47  |  
分类: JAVA开发  |  0 条评论  |  365 次浏览

近期有开始一个新项目的开发,项目使用Spring Boot + Dubbo + MyBatis plus等其他框架开发,就不细讲,这篇文章主要是记录下解决热加载的问题

 

网上有给出了许多解决热加载的方法,比如:

在resource目录下创建META-INF/spring-devtools.properties文件

里面的内容为类似下面的内容:

restart.exclude.companycommonlibs=/mycorp-common-[\\w-]+\.jar
restart.include.projectcommon=/mycorp-myproj-[\\w-]+\.jar

网上能给出的答案一般也就这些,可是作为观众我们自然是表示一脸懵逼啊,这两行啥玩意?

 

那么现在给出下我的解决办法:

现在大部分的项目在eclipse中基本都是多个项目的形式,在intellij idea中则是多个module的形式

我使用的是eclipse,项目的结构大概如下图(精简版):

其中,web项目引用了faced项目,没有引用service项目,因为service项目是个独立的dubbo provider(提供者),web项目则为consumer(消费者)

 

web项目中的controller中有这么一行代码:

UserInfo info = userService.findInfo();

其中UserInfo来自faced项目,userService则通过dubbo的reference注入

项目引入spring-boot-devtools了以后,如果改动了web项目中的代码,则下次web项目中运行到了上面这行代码,则会出现如下报错

java.lang.ClassCastException: com.xxx.UserInfo cannot be cast to com.xxx.UserInfo

为啥明明显示的是同一个类,却给我显示类型转换异常?

那么这就要从spring-boot-devtools的工作原理说起

spring-boot-devtools的热加载其实是这么工作的

当你启动web项目的时候,你的web项目中的代码都会交给spring-boot-devtools的restart加载器去进行加载,而jar包,则基本会交给base加载器去加载

当项目中的代码有改动时,devtools检测到代码变动,restart加载器就会被扔掉重建,这个时候,所有restart加载器加载的代码都会重新部署,而base加载器则维持不变

因为jar包的内容基本都不会变,所以用base加载器不会有什么问题

但是由于web项目中引用了faced项目,于是你引用的faced的所有代码也会被restart加载器重新加载,此时,刚刚加载的UserInfo则跟项目刚开始启动的UserInfo就是两个类了,java中判断两个类是否为同一个类不仅仅是通过包名+类名去识别,还会去看两个类的加载器是否一致,如果不一致,则识别为两个类,所以就会出现我们之前看到的转换异常

那么解决办法呢?

首先我们需要确定我们出现转换异常的类在哪个项目中,我的则是platform-faced项目

那么回到最初的方法,我们需要在resource目录下创建META-INF/spring-devtools.properties文件

里面的内容填写:

restart.exclude.faced=/platform-faced

如果你有多个face项目,且项目名开头都是这个,那么可以使用如下的配置

restart.exclude.faced=/platform-faced[\\w-]+

网上给的答案后面有带上.jar,但是由于我们开发的时候的引用方式是项目引用,后面是不带jar的,所以我们不需要带上.jar

restart.exclude.faced这个键中的faced是可以自己命名的,只需要保证在这个配置文件中唯一即可

文件配置好后,我们可以在项目已启动状态下修改web项目中的代码,可以看到控制台有显示项目重新加载,继续访问到之前触发转换异常的地方,发现已经不会异常了,完美!

 

好久没写东西了。。。

作者: StoneWu  |  时间: 2018-09-06 16:11:18  |  
分类: 吐槽  |  0 条评论  |  339 次浏览

好长一段时间没写东西了

最近上班略忙,回家也得2月份才能回,那个时候都要过年了

而且在家里也只能待10天不到。。宝宝心里苦。。

博客还有挺多东西没开发完成的。。挤牙膏似的写。。

快过年了就不写了吧,明年再写,嘻嘻

话说手机版在一个礼拜前已经完成了,之前用的滚动条插件有点渣。。

换了个新的滚动条插件就棒棒的了

 

--END

mongodb后台运行

作者: StoneWu  |  时间: 2018-08-02 13:19:26  |  
分类: linux学习  |  0 条评论  |  156 次浏览

完成安装mongodb(略)

 

创建数据目录:

mkdir /data/db

创建配置文件

# vi /data/db/mongodb.cnf
dbpath=/data/db/
logpath=/data/db/mongo.log
logappend=true
fork=true
port=27017

或者:不创建配置文件通过mongod参数启动也可以

 

配置文件方式启动mongo

mongod -f /data/db/mongodb.cnf

intellij idea激活

作者: StoneWu  |  时间: 2018-06-04 11:22:55  |  
分类: 大杂烩  |  0 条评论  |  268 次浏览

最近想尝试下使用intellij开发,但是community版是不能开发javaEE的,于是:

设置激活服务器为:

http://idea.toocruel.net

即可

已失效!