분류 전체보기 (272) 썸네일형 리스트형 11월 17일 SpringBoot ComponentScan Filter의 옵션 ANNOTATION = 기본값 , 어노테이션을 인식해서 동작한다. org.example.someAnnotation 특정 어노테이션의 유무에 따라 인식하여 동작한다. ASSIGNABLE_TYPE = 지정한 타입과 자식 타입을 인식해서 동작한다. org.example.someclass 특정 클래스 명으로 제외하거나 추가한다. ASPECTJ = AspectJ 패턴 사용 org.example...*Service REGEX = 정규 표현식 org.example.Defualt.* CUSTOM = TypeFilter 라는 인터페이스를 구현해서 처리 org.example.MyTypeFilter 11월 14일 SpringBoot ComponentScan Filter 사용법 ComponentScan Filter 사용법 어노테이션 만드는법. 어노테이션파일(Java 파일)을 생성한다. 거기에 아래의 어노테이션을 넣어준다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @Interface 어노테이션명{} 가령 이 어노테이션을 사용중인 클래스가 있고 , 특정 어노테이션을 인식 / 제외 하는 방법 Config파일에서 설정 @Configuration @ConponentScan{ 여기서 includeFilters 는 특정 조건을 만족하는 클래스만 스캔한다. includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , class.. 11월 13일 SpringBoot ComponentScan의 동작방법 ComponentScan의 동작방법 기본적으로 ComponentScan은 모든 페이지를 뒤지는데 이걸 컨트롤할 수 있다. basePackages = "hello.core.member" 로 특정 패키지만 스캔할 수도 있고 basePackageClasses = AutoAppConfig.class 로 해당 클래스가 포함된 패키지만 스캔할 수도 있다. 또한 excludeFilters = @ComponenctScan.Filter(type = FilterType.ANNOTATION , classes = Configuration.class) 으로 특정 어노테이션은 Scan시에 제외할 수도 있고 현 작업환ㄱ셩에서는 위 설정을 저장하지 않고 모든것을 스캔하지만 설정정보(AppConfig)등을 프로젝트에 최상단에 위치시켜.. 11월 10일 SpringBoot Config파일 Config파일 @Configuration @ComponentScan ComponentScan은 모든 파일을 뒤져서 @Component를 찾는다. 그 @Component가 붙은 class를 Bean으로 등록한다. 특정 경우에 따라 ComponentScan에 Scan되지 않을 class를 지정할 수도 있다. Bean 으로생성할 객체 클래스 @Component ComponentScan에 의해 해당 클래스명과 상속타입으로 Container에 bean등록된다. 생성할 객체 클래스의 DI(의존관계 자동 주입) @AutoWried를 사용해 Container에서 필요로 하는 타입의 bean을 찾아서 의존성을 주입한다. 11월 9일 SpringBoot AutoWired 사용 appConfig.xml에서 @ConponentScan 어노테이션을 사용한 Container 등록 기존 AppConfig에서 @Configuration을 선언하고 각 Bean을 @Bean으로 설정하였었는데 이번에는 @Configuration을 선언하고 그 밑에 @ComponentScan을 선언한뒤 따로 @Bean가 적힌 각 메소드를 명시하지 않는다. @ComponentScan은 @Configuration이 선언되어 컨테이너를 만들때 다른 @Component가 선언되어있는 class를 찾는다. 이 @Component는 기존 AppConfig에서 @Bean을 명시한 메소드로 bean을 등록하던 객체를 @Bean대신 등록할 class에 붙여주게 된다. 그럼 @Component로 객체가 생성은 되는데 AppCo.. 11월 8일 SpringBoot 스프링에서 싱글톤이 유지되는 원리 스프링에서 싱글톤이 유지되는 원리 Config파일에는 @Configuration 어노테이션이 붙게되는데 이 어노테이션은 다음과 같은 효과가 있다. 만약 @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } 위와 같은 Bean객체가 있고 이 객체를 각각 @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } 와 @Bean public OrderServiceImpl orderService(){ return new OrderServiceImpl(memberRepository() , disCo.. 11월 7일 SpringBoot 스프링 싱글톤의 문제점 스프링 싱글톤의 문제점 1. 특정 클라이언트에 의존적 필드가 있으면 안된다. 2. 특정 클라이언트에 값을 변경할 수 있는 필드가 있으면 안된다. 3. 가급적 읽기만 가능해야 한다. 4. 필드값 대신에 공유되지 않는 지겨변수 , 파라미터 , Thread Local등을 사용해야한다. ex) 만약 싱글톤으로 만들 객체(구현)에 필드 변수가 있다면 public class statefulService{ private int price ; public void order(String name , int price){ this.price = price //필드 값을 생성자에 의해 주입 } public int getPrice(){ return price; } 위 상태의 객체를 싱글톤으로 생성 AnnotationCont.. 11월 3일 SpringBoot 스프링의 싱글톤 구현 Spring이 아닌 방법 AppConfig appConfig = new AppConfig(); //직접 객체를 생성 MemberService memberService1 = appConfig.memberService() //직접 생성한 객체에서 bean생성을 위한 매소드를 호출 //Spring이 아니기 때문에 어노테이션으로 bean이 등록되지 않았다. SpringBoot에서의 방법 ApplicationContext ac = new ApplicationConfigApplicationContext(AppContext) // 스프링의 ApplicationContext 을 통해 AppConfig를 주입한다. AppConfig에 어노테이션에 따라 설정한 Bean들이 ApplicationContext에 자동 등록된다.. 이전 1 ··· 28 29 30 31 32 33 34 다음