Your Name пре 2 година
родитељ
комит
b71ea31846

+ 34 - 0
java110-db/src/main/java/com/java110/db/BeanInitCostTimeBeanPostProcessor.java

@@ -0,0 +1,34 @@
+package com.java110.db;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanPostProcessor;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 此类主要用于调优,使用 打印bean的加载时间
+ */
+@Component
+public class BeanInitCostTimeBeanPostProcessor implements BeanPostProcessor {
+
+
+    private static Map<String, Long> startTime = new ConcurrentHashMap<>();
+
+    @Override
+    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
+        startTime.put(beanName, System.currentTimeMillis());
+        return bean;
+    }
+
+    @Override
+    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
+        if (Objects.nonNull(startTime.get(beanName))) {
+            System.out.println("beanName=" + beanName + ",costTime=" + (System.currentTimeMillis() - startTime.get(beanName)));
+            ;
+        }
+        return bean;
+    }
+}