2020-09-23 11:16
@李通 需要,因为他们各自管各自的事情。DruidPlugin的stop管连接池关闭。ActiveRecordPlugin的stop是卸载Model映射关系以及Db的一些配置等。
2020-09-21 22:11
@渴死的鱼 不是网友说的不详细,只是这个问题是一个运行状态提示罢了。
就像大家不会解释太多NullPointException咋处理一样,
因为创建ServerSocket对象的线程 和 操作关闭 一般写法不是同一个线程,所以循环调用serverSocket.accept()的时候,会提示Socket is closed
如果非得不让它提示,那么serverSocket.close()得由创建ServerSocket对象的那个线程来自己关闭,比如增加一个 自定义全局变量 来管理关闭状态,外部线程只标记关闭自定义那个状态,不做真正关闭操作。伪代码大致:
myClose = true;//比如在JFinalConfig 配置子类 的onStop()赋值
while (true) {
if(myClose){
serverSocket.close();
return;
}
//前面如果关闭了,代码就执行不到这里来,当不会提示了
socket = serverSocket.accept();
}
但是感觉不如加一个try catch来得方便,因为循环当中,本来大家都会写try catch所以更简单