spring-data-redis
spring-data-redis copied to clipboard
Simplify afterPropertiesSet() Method in `RedisTemplate` Using Objects.requireNonNullElse
The afterPropertiesSet() method currently contains multiple null checks and assignments that can be simplified. By utilizing Java 9’s Objects.requireNonNullElse and Objects.requireNonNullElseGet methods, we can make the code more concise, readable, and maintainable.
AS-IS
public void afterPropertiesSet() {
super.afterPropertiesSet();
if (defaultSerializer == null) {
defaultSerializer = new JdkSerializationRedisSerializer(
classLoader != null ? classLoader : this.getClass().getClassLoader());
}
if (enableDefaultSerializer) {
if (keySerializer == null) {
keySerializer = defaultSerializer;
}
if (valueSerializer == null) {
valueSerializer = defaultSerializer;
}
if (hashKeySerializer == null) {
hashKeySerializer = defaultSerializer;
}
if (hashValueSerializer == null) {
hashValueSerializer = defaultSerializer;
}
}
if (scriptExecutor == null) {
this.scriptExecutor = new DefaultScriptExecutor<>(this);
}
initialized = true;
}
TO-BE
public void afterPropertiesSet() {
super.afterPropertiesSet();
defaultSerializer = Objects.requireNonNullElseGet(
defaultSerializer,
() -> new JdkSerializationRedisSerializer(
Objects.requireNonNullElse(classLoader, getClass().getClassLoader()))
);
if (enableDefaultSerializer) {
keySerializer = Objects.requireNonNullElse(keySerializer, defaultSerializer);
valueSerializer = Objects.requireNonNullElse(valueSerializer, defaultSerializer);
hashKeySerializer = Objects.requireNonNullElse(hashKeySerializer, defaultSerializer);
hashValueSerializer = Objects.requireNonNullElse(hashValueSerializer, defaultSerializer);
}
scriptExecutor = Objects.requireNonNullElseGet(
scriptExecutor,
() -> new DefaultScriptExecutor<>(this)
);
initialized = true;
}
}