From cff8174966e129462a8238515a13606b34eb57ce Mon Sep 17 00:00:00 2001 From: newvelop Date: Fri, 15 Nov 2024 16:30:09 +0900 Subject: [PATCH] =?UTF-8?q?refactor=20:=20=EB=A9=94=EC=86=8C=EB=93=9C=20?= =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=EB=9D=BC=EC=9D=B8=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=EB=93=B1=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...onImpl.java => DefaultBeanDefinition.java} | 4 +- .../beans/factory/support/BeanInjector.java | 43 ++++++++++--------- .../beans/factory/support/BeanScanner.java | 11 ++--- 3 files changed, 29 insertions(+), 29 deletions(-) rename di/src/main/java/com/interface21/beans/factory/config/{BeanDefinitionImpl.java => DefaultBeanDefinition.java} (72%) diff --git a/di/src/main/java/com/interface21/beans/factory/config/BeanDefinitionImpl.java b/di/src/main/java/com/interface21/beans/factory/config/DefaultBeanDefinition.java similarity index 72% rename from di/src/main/java/com/interface21/beans/factory/config/BeanDefinitionImpl.java rename to di/src/main/java/com/interface21/beans/factory/config/DefaultBeanDefinition.java index 4a4f407..1a343a9 100644 --- a/di/src/main/java/com/interface21/beans/factory/config/BeanDefinitionImpl.java +++ b/di/src/main/java/com/interface21/beans/factory/config/DefaultBeanDefinition.java @@ -1,10 +1,10 @@ package com.interface21.beans.factory.config; -public class BeanDefinitionImpl implements BeanDefinition { +public class DefaultBeanDefinition implements BeanDefinition { private String beanClassName; private Class type; - public BeanDefinitionImpl(String beanClassName, Class type) { + public DefaultBeanDefinition(String beanClassName, Class type) { this.beanClassName = beanClassName; this.type = type; } diff --git a/di/src/main/java/com/interface21/beans/factory/support/BeanInjector.java b/di/src/main/java/com/interface21/beans/factory/support/BeanInjector.java index 3b690b9..4993137 100644 --- a/di/src/main/java/com/interface21/beans/factory/support/BeanInjector.java +++ b/di/src/main/java/com/interface21/beans/factory/support/BeanInjector.java @@ -2,8 +2,9 @@ import com.interface21.beans.BeanUtils; import com.interface21.beans.factory.config.BeanDefinition; -import com.interface21.beans.factory.config.BeanDefinitionImpl; import com.interface21.beans.factory.config.MethodBeanDefinitionImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -11,6 +12,8 @@ import java.util.*; public class BeanInjector { + private final Logger logger = LoggerFactory.getLogger(BeanInjector.class); + private Map beanDefinitionMap; public BeanInjector(Map beanDefinitionMap) { @@ -55,20 +58,7 @@ private void generateBeanFromConstructor( // TODO 일단은 생성자가 하나만 있다고 가정하는데 여러개 있는걸 다음스텝으로 Constructor constructor = BeanFactoryUtils.getInjectedConstructor(targetClass); if (constructor == null) { - try { - objectByClass.put( - targetClass, - targetClass.getDeclaredConstructor().newInstance() - ); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } + createInstanceWithoutConstructor(targetClass, objectByClass); return; } @@ -77,12 +67,26 @@ private void generateBeanFromConstructor( instantiateConstructor( constructor, objectByClass, - visited, - beanDefinition + visited ) ); } + private void createInstanceWithoutConstructor( + Class targetClass, + Map, Object> objectByClass + ) { + try { + objectByClass.put( + targetClass, + targetClass.getDeclaredConstructor().newInstance() + ); + } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + logger.error(e.getMessage(), e); + } + } + + private void generateBeanFromMethod( Map, Object> objectByClass, BeanDefinition beanDefinition, @@ -99,11 +103,10 @@ private void generateBeanFromMethod( private Object instantiateConstructor( Constructor constructor, Map, Object> objectByClass, - Set visited, - BeanDefinition targetBeanDefinition + Set visited ) { Class[] parameterTypes = constructor.getParameterTypes(); - List args = new ArrayList(); + List args = new ArrayList<>(); for (Class clazz : parameterTypes) { Object object = getBean(clazz, objectByClass); if (object == null) { diff --git a/di/src/main/java/com/interface21/beans/factory/support/BeanScanner.java b/di/src/main/java/com/interface21/beans/factory/support/BeanScanner.java index 08db359..366a7dd 100644 --- a/di/src/main/java/com/interface21/beans/factory/support/BeanScanner.java +++ b/di/src/main/java/com/interface21/beans/factory/support/BeanScanner.java @@ -1,7 +1,7 @@ package com.interface21.beans.factory.support; import com.interface21.beans.factory.config.BeanDefinition; -import com.interface21.beans.factory.config.BeanDefinitionImpl; +import com.interface21.beans.factory.config.DefaultBeanDefinition; import com.interface21.beans.factory.config.MethodBeanDefinitionImpl; import com.interface21.context.annotation.Bean; import com.interface21.context.stereotype.Component; @@ -53,7 +53,7 @@ private void insertBeanDefinitionFromClass( ) { for (Class clazz : beanClasses) { String name = decapitalize(clazz.getName()); - BeanDefinition beanDefinition = new BeanDefinitionImpl( + BeanDefinition beanDefinition = new DefaultBeanDefinition( clazz.getName(), clazz ); @@ -76,13 +76,10 @@ private void insertBeanDefinitionFromMethod( } private String decapitalize(String string) { - if (string == null || string.length() == 0) { + if (string == null || string.isBlank()) { return string; } - char c[] = string.toCharArray(); - c[0] = Character.toLowerCase(c[0]); - - return new String(c); + return Character.toLowerCase(string.charAt(0)) + string.substring(1); } }