core9 SpringFrameWork CoreTechnition_section_마무리 강좌목표 : 스프링 프레임워크 핵심 기술 익히기 point : 스프링 IoC ,스프링 AOP,추상 API 1. 스프링 IoC 컨테이너 ,dependency injection 기본적인 기능들 빈들을 가지고 있는 저장소역할, 빈들을 가져다 주는 역할.(라이프 사이클 언급,스코프) 2.application context 인터페이스, xml 살짝 맛보기(현재 애노테이션), 구체적인 context 는 사용하지 않지만 그래도 대표적으로 xml,java를 사용.(classPathXmlApplicationContext,AnnotationConfigApplicationContext) 3.Autowired 매우 자주 쓰이는 애노테이션, 애노테이션 동작방법, 애노테이션 처리하는 프로세서가 빈 라이플 사이클 중에 하나인 Be.. Spring/Spring_CoreTechnologies 2020. 11. 29. SpringFrameWork CoreTechnition_section6_15부 Null-safty @NonNull @Nullable(null가능) @NonNullapi @NonNullFields 목적 컴파일 시점에 최대한 NullPointerException을 방지하는 것. --> null을 허용 불용 할 것인가의 툴을 지원을 받아 NullPointerException 미연에 방지 가는 한 것이다 아무런 표시가 뜨지 않고 저 밑줄에도 어떠한 내용이 나오지 않습니다. null을 주었는데 빨간 밑줄또한 전혀 보이지 않는 상황이다. 이러한 오류가 없다면 나중에 코드가 길어지기라도 한다면 nullpointer오류가 날 가능성이 매우 높다. 그리고 현재 아무런 위험 표시가 되어있지 않아 그냥 넘어가기 일쑤이다. 해당 관련 오류를 출력하기 위해서는 약간의 설정이 필요하다. settings -.. Spring/Spring_CoreTechnologies 2020. 11. 29. SpringFrameWork CoreTechnition_section5_14부 AOP 애노테이션 의존성 추가(pom.xml 에 추가) org.springframework.boot spring-boot-starter-aop Aspect 사용법. (흩어져있는 것.)-> 해야할 일과 어디에 적용할 것인가 advise Pointcut 정의. @Aspect 빈으로 등록(만약 컴포넌트 스캔을 사용한다면 @Component 추가) Pointcut 사용법. (어디클래스들에 사용되는 정보) @Pointcut 주요 표현식 -exectuon : EventService를 상속받은 모든 메소드에 적용한다. 따로따로 각 메소드에 적용할 수 있지만 모든 메소드를 처리할 때 사용하기를 권장한다. ex) @Around("execution(* com.example..*.EventService.*(..))") ->.. Spring/Spring_CoreTechnologies 2020. 11. 25. SpringFrameWork CoreTechnition_section5_13부 스프링 AOP : 프록시 기반 AOP ※ 다이나믹한 방법은 이론 설명만 있음. AOP : AOP 는 oop를 보안하는 수단으로 흩어진 Aspect를 모듈화하는 프로그래밍 기법 이다. proxy : 네트워크쪽에 사용하는 용어로 중계자, 대리자 라는 뜻을 가지고 보안상 직접 통신하지 않고 두 점사이에서 대리인의 역할을 수행하는 기능이다. -점 - proxy - 점 -> 이렇게 생각할 수 있고 또한 - proxy(점) -> 점 으로 생각할 수 있다.(proxy로 감싸있는 점 ) AOP의 특징 프록시 기반의 AOP 구현체이다. 스프링 빈!에만 AOP를 적용할 수 있다. 모든 AOP의 기능을 적용하는 것이 목적이 아닌 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에 가장 흔한 문제에 대해 해결책을 제공하는 것.. Spring/Spring_CoreTechnologies 2020. 11. 24. SpringFrameWork CoreTechnition_section5_12부 AOP AOP의 개념 Aspect-Oriented Programming의 약자이다. 흩어진 Aspect들을 모아서 모듈화 하는 기법이다. AOP는 OOP를 보완하는 수단이다.(대체하는 것이 아니고 OOP를 좀 더 잘하게 끔 하는 것이다) 여러가지의 구현체들이 존재하지만 AspectJ와 SpringAop가 대표적이다. 관심사란 => 비슷한 코드들을 의미한다. ex) 필드 또는 메소드 등과 같은 것들 이다. Transacion , Logging 사용. 각 클래스에 중복되는 부분이 있으면! 중복을 제거하기 위해 AOP를 적용하게 된다. class A,B,C 에 중복된 관심사들을 깔끔하게 정리한다. AOP 의 주용 개념(용어정리) Aspect와 target Aspect : 해야할 일(관심사)과 어디에(클래스A?.. Spring/Spring_CoreTechnologies 2020. 11. 24. 이전 1 2 다음