[Spring] ComponentScan
ComponentScan이란? @Component 어노테이션을 사용한 클래스들을 스프링빈으로 등록하기 위해서, 그 범위를 정하는 상위 어노테이션이다. ​ AppConfig.java에 @Configuration과 @Bean을 통해 스프링 컨테이너에 싱글톤으로 객체를 등록을 했다. ​ 하지만, 객체를 만들게 많아질 수록 코드는 길어진다. 이건 번거로운 일이다. ​ 그래서 빌드가 될때 자동으로 스프링빈을 등록해주는 방법이 있는데, ​ 그게 @ComponentScan을 통해서 할 수 있다. 또, 뒤에서 공부하겠지만 @Autowired라는 기능도 제공받아 의존관계 주입을 받을 수 있다. ​ AutoAppConfig.java package hello.core; @Configuration @Componentscan ..
2022.07.14
[Spring] 싱글톤
싱글톤이란 객체의 인스턴스가 오직 하나만 생성되어 사용하는것 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} // 생성자는 외부에서 생성못하게 private 지정 public static Singleton getInstance() { return instance; } } 위 코드는 싱글톤이 유지되는 인스턴스이다. 장점 무분별한 객체 인스턴스를 생성하지 않아도 된다. 메모리 측면에서 굉장히 효율적 이미 만들어진것을 사용하다보니 사용속도에서도 이점 클래스 인스턴스이기때문에 데이터 공유하기에 쉽다. 싱글톤 주의점 싱글톤 사용하여 공유필드를 사용하면, 문제가 생긴다. 1. Stat..
2022.07.13
no image
[Spring] @Configuration, @Bean, Application
Spring Container에 Bean들을 등록을 하려면 아래와 같이 하면 된다. @Configuration은 @Bean을 등록하기 위하여 쓰는 어노테이션이다. 2022.07.13 - [개발/스프링] - [Spring] 싱글톤 좌측 게시글에서 싱글톤에 대해 확인 가능하다. @Bean이라고 붙은 메소드를 호출 해서 반환한 객체를 스프링 객체로 등록한다 ( 반환된 객체가 springBean ) ​ 즉, @Configuration을 쓰면 내 안에 있는 @Bean들을 객체로 등록할 것이다. 라는 의미 또 중요한 역할은 등록된 Bean들을 싱글톤으로 관리되도록 보장 해준다. ​ @Configuration을 쓰지 않고 @Bean만 써도 객체는 생성되지만 싱글톤으로 되진 않는다. 기존에 AppConfig를 생성해서..
2022.07.13
[Spring] DI 란
DI란 의존관계 주입을 의미 ※Dependency Injection의 줄임말 ​ 객체가 다른 객체를 사용하기 위하여 본인 스스로 다른 객체를 생성하는것이 아닌 외부로부터 주입 받는 것을 의미 ​ 의존관계 주입의 방법에는 몇가지가 있다. ( 미리 말하자면 생성자 주입을 권고한다. ) 생성자 주입 필드 주입 setter 주입 @Component class OrderServiceImpe{ private DiscountPolicy discountPolicy = new RateDiscountPolicy(); } 위 코드의 경우가 본인 스스로가 다른 객체를 사용하기 위하여 객체를 생성한 것이다. new RateDispolicy(); @Component class OrderServiceImpl{ private Dis..
2022.07.13