Преглед изворни кода

[IdWorker][修改]:IdWorker环境问题修复

release_toaliyun_real
Stormeye Wu пре 6 година
родитељ
комит
adc0cf4d40
2 измењених фајлова са 16 додато и 9 уклоњено
  1. +14
    -8
      mallinkService/src/main/java/com/iformall/common/IdWorker.java
  2. +2
    -1
      mallinkService/src/main/java/com/iformall/utils/IPUtil.java

+ 14
- 8
mallinkService/src/main/java/com/iformall/common/IdWorker.java Прегледај датотеку

@@ -1,6 +1,8 @@
package com.iformall.common; package com.iformall.common;


import com.iformall.utils.IPUtil; import com.iformall.utils.IPUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.net.UnknownHostException; import java.net.UnknownHostException;
@@ -16,6 +18,7 @@ import java.util.List;
*/ */


public class IdWorker { public class IdWorker {
private final Logger logger = LoggerFactory.getLogger(IdWorker.class);
// ==============================Fields=========================================== // ==============================Fields===========================================
/** 开始时间截 (2015-01-01) */ /** 开始时间截 (2015-01-01) */
private final long twepoch = 1489111610226L; private final long twepoch = 1489111610226L;
@@ -60,16 +63,19 @@ public class IdWorker {
private long lastTimestamp = -1L; private long lastTimestamp = -1L;


///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////

private static class IdGenHolder {
private static final IdWorker instance = new IdWorker();
}

public static IdWorker get(){
return IdGenHolder.instance;
private static IdWorker instance = null;
public static IdWorker get() {
if(instance == null) {
synchronized (IdWorker.class){
if(instance==null){
instance = new IdWorker();
}
}
}
return instance;
} }


public IdWorker() {
private IdWorker() {
String ipAddr = ""; String ipAddr = "";
try { try {
ipAddr = IPUtil.getLocalHostLANAddress().getHostAddress(); ipAddr = IPUtil.getLocalHostLANAddress().getHostAddress();


+ 2
- 1
mallinkService/src/main/java/com/iformall/utils/IPUtil.java Прегледај датотеку

@@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.net.Inet4Address;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.NetworkInterface; import java.net.NetworkInterface;
import java.net.UnknownHostException; import java.net.UnknownHostException;
@@ -62,7 +63,7 @@ public class IPUtil {
// 在所有的接口下再遍历IP // 在所有的接口下再遍历IP
for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements();) { for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements();) {
InetAddress inetAddr = (InetAddress) inetAddrs.nextElement(); InetAddress inetAddr = (InetAddress) inetAddrs.nextElement();
if (!inetAddr.isLoopbackAddress()) {// 排除loopback类型地址
if (!inetAddr.isLoopbackAddress() && (inetAddr instanceof Inet4Address)) {// 排除loopback类型地址, ipv4
if (inetAddr.isSiteLocalAddress()) { if (inetAddr.isSiteLocalAddress()) {
// 如果是site-local地址,就是它了 // 如果是site-local地址,就是它了
return inetAddr; return inetAddr;


Loading…
Откажи
Сачувај