본문 바로가기

Spring

(10)
Spring AOP Aspect Oriented Programming (관점 지향 프로그래밍) - 어플리케이션은 다양한 공통 기능을 필요로 한다. - 어플리케이션에서 전반적으로 걸쳐 적용되는 공통 기능들 은 특정 모듈들에서만 적용 되는게 아니다. - 이런 공통 기능들을 공통 관심 사항(cross-cutting concern) 으로 표현하고 공통 관심 사항을 제외한 핵심 로직을 핵심 관심 사항(core concern) 으로 표현한다. - AOP는 이런 공통 관심 사항과 핵심 관심 사항을 관점적으로 분리해서 보자는 의미이다. AOP의 장점 1. 중복 코드 제거 에 따른 코드의 간결성 2. 생산성 향상 3. 공통기능 빠진 클래스는 재사용성 증가 4. 유지보수성 향상 AOP 용어 정리 ▶ Aspect : 여러 객체에 공통으로 적용..
Spring Annotation 정리 저번에 DI의 개념을 정리할 때 @Configuration과 @Bean과 같은 annotation을 사용하여 xml 설정파일을 대신했던 것 처럼 Spring에선 다양한 용도의 Annotation을 제공한다. [ @Required ] Required 어노테이션은 setter method에 사용하며, 필수 프로퍼티임을 명시하는 것으로 설정하지 않을 경우 빈 생성시 예외를 발생시킨다. RequiredAnnotationBeanPostProcessor 클래스는 스프링 컨테이너에 등록된 bean 객체를 조사하여 @Required 어노테이션으로 설정되어 있는 프로퍼티의 값이 설정되어 있는지 검사한다. 사용하려면 클래스를 빈으로 등록시켜줘야 하지만 이를 대신하여 태그를 사용해도 된다: [ @Autowired ] 필드,..
DI(의존성 주입) 기본 개념 스프링의 핵심 기술 중 하나인 DI는 Dependecy Injection 즉, '의존성을 주입시켜준다.' 라는 의미이다. 주입한다는 말은 어떠한 객체를 사용할 때에 new()로 직접 새로운 클래스를 생성하여 사용하는 것과 달리 외부에서 생성된 객체를 setter( )나 생성자를 통해 사용한다는 것 이다. 스프링은 이러한 기능을 다른 객체들이 사용하고, 다른 서비스를 위해 사용할 수 있는 클래스를 컨테이너 형태로 제공하며, ioc컨테이너는 빈(Bean)을 만들고 의존성을 엮어주며(wiring) 빈들을 제공해준다. 1. xml파일을 통해 설정하기 - setter() / constructor MessageBeanImpl.java public class MessageBeanImpl implements Messa..
MyBatis Mapper Mybatis는 SQL Mapper파일에 SQL을 작성하며 DAO에서 SqlSession 객체가 SQL mapper 파일을 참조하게 된다. [1] Mapper 만들기 첫 번째. SQL Mapper파일에서 가장 먼저 XML과 DTD선언을 해준다. (설정파일(config)에서도 선언해준다. 단, mapper를 config로 바꿔주면 된다.) 두 번째. 루트 엘리먼트의 namespace를 작성한다. (네임스페이스란? https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%A6%84%EA%B3%B5%EA%B0%84D) 세 번째. SQL문에 따라서 작성한다. SELECT - SQL문 --> resultType : id와 함께 필수속성으로 select의 결과로 반환된 resultSet이 매핑된..
MyBatis MyBatis란 무엇인가? - 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. - JDBC코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거한다.(코드의 간결성 및 유지보수성 향상) - 데이터베이스 레코드에 원시타입과 Map인터페이스 그리고 자바 POJO를 설정하고 매핑하기 위해 XML과 애노테이션을 사용할 수 있다. MyBatis3 구성요소 및 예제 MyBatis configuration file : 데이터베이스 설정과 트랜잭션 등 마이바티스가 동작하는 규칙을 정의하는 작업 설정 파일. org.apache.ibatis.session.SqlSessionFactoryBuilder : MyBatis3 구성 파일을 읽고 생성하는 SqlSessionFacto..