import java.lang.reflect.Field;
import java.util.Objects;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.util.SystemPropertyUtils;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Component
@Setter
@Getter
@NoArgsConstructor
public class Configuration {
private static final Logger logger = LoggerFactory.getLogger(Configuration.class);
@Value("${prop_name}")
private int prop;
// Other propertyList
@Override
public String toString() {
final StringBuilder builder = new StringBuilder(System.lineSeparator());
for (Field field : this.getClass().getDeclaredFields()) {
try {
Value annotation = field.getAnnotation(Value.class);
if (Objects.nonNull(annotation)) {
String value = annotation.value();
builder.append(value.substring(2, value.indexOf(SystemPropertyUtils.PLACEHOLDER_SUFFIX)))
.append(" = ")
.append(field.get(this))
.append(System.lineSeparator());
}
} catch (Exception e) {
logger.info("{}", e);
}
}
return builder.toString();
}
@PostConstruct
private void postContruct() {
logger.info("{}", this);
}
}
Comments
Post a Comment