mirror of
https://github.com/hs-web/hsweb-framework.git
synced 2026-05-13 00:28:59 +08:00
使用FastThreadLocal替代ThreadLocal
This commit is contained in:
@@ -118,7 +118,12 @@
|
||||
<dependency>
|
||||
<artifactId>jctools-core</artifactId>
|
||||
<groupId>org.jctools</groupId>
|
||||
<version>2.1.2</version>
|
||||
<version>4.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.netty</groupId>
|
||||
<artifactId>netty-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -17,6 +17,7 @@ public class ContextUtils {
|
||||
return contextThreadLocal.get();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Mono<Context> reactiveContext() {
|
||||
return Mono
|
||||
.subscriberContext()
|
||||
@@ -32,6 +33,7 @@ public class ContextUtils {
|
||||
}));
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Function<reactor.util.context.Context, reactor.util.context.Context> acceptContext(Consumer<Context> contextConsumer) {
|
||||
return context -> {
|
||||
if (!context.hasKey(Context.class)) {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.hswebframework.web.i18n;
|
||||
|
||||
import io.netty.util.concurrent.FastThreadLocal;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.hswebframework.web.exception.I18nSupportException;
|
||||
import org.reactivestreams.Publisher;
|
||||
@@ -34,7 +35,7 @@ public final class LocaleUtils {
|
||||
|
||||
public static final Locale DEFAULT_LOCALE = Locale.getDefault();
|
||||
|
||||
private static final ThreadLocal<Locale> CONTEXT_THREAD_LOCAL = new ThreadLocal<>();
|
||||
private static final FastThreadLocal<Locale> CONTEXT_THREAD_LOCAL = new FastThreadLocal<>();
|
||||
|
||||
static MessageSource messageSource = UnsupportedMessageSource.instance();
|
||||
|
||||
|
||||
@@ -1,11 +1,18 @@
|
||||
package org.hswebframework.web.id;
|
||||
|
||||
import io.netty.util.concurrent.FastThreadLocal;
|
||||
|
||||
import java.util.Base64;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
public class RandomIdGenerator {
|
||||
|
||||
private final static ThreadLocal<byte[]> HOLDER = ThreadLocal.withInitial(() -> new byte[24]);
|
||||
private final static FastThreadLocal<byte[]> HOLDER = new FastThreadLocal<byte[]>() {
|
||||
@Override
|
||||
protected byte[] initialValue() {
|
||||
return new byte[24];
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public static String random() {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.hswebframework.web.utils;
|
||||
|
||||
import io.netty.util.concurrent.FastThreadLocal;
|
||||
import org.apache.commons.codec.binary.Hex;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
@@ -8,9 +9,27 @@ import java.util.function.Supplier;
|
||||
|
||||
public class DigestUtils {
|
||||
|
||||
public static final ThreadLocal<MessageDigest> md5 = ThreadLocal.withInitial(org.apache.commons.codec.digest.DigestUtils::getMd5Digest);
|
||||
public static final ThreadLocal<MessageDigest> sha256 = ThreadLocal.withInitial(org.apache.commons.codec.digest.DigestUtils::getSha256Digest);
|
||||
public static final ThreadLocal<MessageDigest> sha1 = ThreadLocal.withInitial(org.apache.commons.codec.digest.DigestUtils::getSha1Digest);
|
||||
public static final FastThreadLocal<MessageDigest> md5 = new FastThreadLocal<MessageDigest>() {
|
||||
@Override
|
||||
protected MessageDigest initialValue() {
|
||||
return org.apache.commons.codec.digest.DigestUtils.getMd5Digest();
|
||||
}
|
||||
};
|
||||
|
||||
public static final FastThreadLocal<MessageDigest> sha256 = new FastThreadLocal<MessageDigest>() {
|
||||
@Override
|
||||
protected MessageDigest initialValue() {
|
||||
return org.apache.commons.codec.digest.DigestUtils.getSha256Digest();
|
||||
}
|
||||
};
|
||||
;
|
||||
public static final FastThreadLocal<MessageDigest> sha1 = new FastThreadLocal<MessageDigest>() {
|
||||
@Override
|
||||
protected MessageDigest initialValue() {
|
||||
return org.apache.commons.codec.digest.DigestUtils.getSha1Digest();
|
||||
}
|
||||
};
|
||||
;
|
||||
|
||||
public static byte[] md5(Consumer<MessageDigest> digestHandler) {
|
||||
return digest(md5::get, digestHandler);
|
||||
|
||||
Reference in New Issue
Block a user