ProSeraphina 2020. 10. 23. 17:59

1. XML: 공통 개발

2. Annotation: 개인 개발

3. XML+Annotation

4. Java(Spring 5)

 

스프링: 반복 제거 => 소스 간결

프로그램

=공통모듈: AOP

=핵심모듈

공통=>싱글턴

생성,소멸담당 => 객체 생명주기 관리

생성 constructorDI => setterDI => init-method => 프로그래머가 활용=>  destroy-method => 소멸

 

#메모리 할당(객체 등록)

<bean> =>app.xml
@Component: 일반 클래스, @Repository: DB(DAO 등), @Service, @Controller: Model, @RestController 

#Inject(값 주입)
@Required, @Autowired, @PostConstruct, @PreDestroy, @Resource

 

==================================================================

 

1. DI, Container 개념

  1)setterDI : setXxx() => DB연결, 네트워크...

    <bean id="aaa" class=""

        p:username=""

        p:url=""

        p:dirverClassManager=""

     />

  2)생성자 DI: 생성자의 매개변수 주입

    <bean id="bbb" class=""

        c:=""

        c:=""

        c:=""

     />

  3)Autowired

    동작: XML을 읽어서 등록된 클래스의 메모리를 할당   

 



2. AOP vs OOP

   어느 메소드에 추가? PointCut

   언제 호출(메소드 위치)? JoinPoint

    => Before: 메소드 시작 전

         After: 무조건 호출(finally)

         Around: 코딩 위 아래

         After-Throwing: catch수행(에러 처리)

         After-Returning: 정상수행(리턴값 받아 처리)

   PointCut+JoinPoint=Advice

   Advice가 여러개 =>Aspect(공통모듈; 공통으로 사용되는 메소드의 집합)

    =>트랜잭션, 로그파일, 보안처리

 


3. DAO vs Service 차이점



@Component: 일반클래스

@Repository: DAO

@Controller: Model

@Service: Manager, DAO+DAO

@RestController: 파일 전송없이 일반 문자열 전송



주입

@Autowired: 스프링에서 저장된 클래스 중 맞는 주소 찾아서 자동 주입

@Resource

@Quallifier

@Inject