Framework & Management/Spring

10월 27일 목요일 [코드로 배우는 스프링웹프로젝트] -2day(1)

구일일구 2022. 10. 27. 20:35
반응형

어노테이션 정리


@Data: Lombok의 setter를 생성하는 기능, 생성자, toString() 등을 자동으로 생성하게 함

@Componenet : 스프링에게 해당 클래스가 스프링에서 관리해야 하는 대상임을 표시함

@Setter setter메소드를 자동으로 컴파일할 때 생성해줌
-속성 부여 (1)value : 접근 제한 속성을 의미함, 기본값: lombok.AccessLevel.PUBLIC
(2)onMethod : setter 메서드의 생성 시, 메서드에 추가할 어노테이션을 지정함 (@Autowired와 같은것들)
(3)onParam: setter 메서드의 파라미터에 어노테이션을 사용하는 경우 적용

@Runwith 현재 테스트 코드가 스프링을 실행하는 역할을 할 것이라고 알려줌

@ContextConfiguration 스프링이 실행되면서 어떤 설정 정보를 읽어야 할지 명시함 지정된 클래스나 문자열을 이용해 필요한 객체들을 스프링 내에 객체로 등록하게 됨 : 빈으로 등록 'classpath:'나 'file:'을 이용할 수 있으므로, root-context.xml의 경로를 지정할 수 있음

@Log4j Lombok을 이용해 로그를 기록하는 Logger를 변수로 생성함

@Autowired 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해달라는 표시. 스프링 내부에서 자신이 특정한 객체에 의존적이므로 자신에게 해당 타입의 빈을 주입해달라는 표시

@Test JUnit에서 테스트 대상을 표시하는 어노테이션 => 해당 메서드를 선택하고 JUnit Test 기능 실행

assertNotNull() 안에 들어간 변수가 null이 아니어야만 테스트가 성공함

@AllArgsConstructor 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 작성함

@RequiredArgsConstructor @Nonnull이나 final이 붙은 인스턴스 변수에 대한 생성자를 만들어냄 => 특정 변수만 활용하는 생성자 자동완성함

@NonNull 필드가 절대로 null값이 될 수 없음

* @Data 만 있으면, set과 get 전부 다 만들어진다. 그러나 autowired를 특별히 선언하기 위해 @setter를 쓴다.


Chapter 03 스프링과 Oracle Database 연동

tablespace : table이 저장되는 공간


Chapter 04 MyBatis와 스프링 연동

4.1 MyBatis

* SQL 매핑 프레임워크로 분류

- 자동으로 Connection close() 기능

- 내부적으로 PreparedStatement 처리

- #{ }와 같이 속성을 지정하면 내부적으로 자동 처리

- 리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리

- 진입장벽이 낮은 편이라 JDBC 대안으로 ㅁ낳이 사용함

- mybatis-spring

 

SQLSessionFactory

내부적으로 SQLSession이라는 것을 만들어내는 존재

SQLSession을 통해 Connection을 생성, 원하는 SQL 전달, 결과를 리턴받는 구조로 작성

SQLSessionFactory 는 SQLSessionFactoryBean을 이용함 => 패키지는 mybatis-spring라이브러리 클래스임을 알 수 있음

 

스프링과의 연동 처리 

MyBatis는 SQL과 그에 대한 처리를 지정하는 역할

MyBatis - Spring을 이용하는 경우 Mapper를 XML과 인터페이스+어노테이션 형태로 작성

인터페이스와 xml이 서로 매핑되어 연동된다고 보면됨(TimeMapper.xml이랑 TimeMapper.java랑)

 

 

log4jdbc - log4j2 설정

실행된 SQL의 내용을 정확히 확인하기 어렵기 때문에 PreparedStatement에 사용된 '?'가 어떤 값으로 처리되었는지 확인하는 기능을 추가

SQL로그를 제대로 보기 위해서 log4jdb-log4j2 라이브러리를 사용해야 함

1) 로그 설정 파일을 추가하는 작업 필요 => src/main/resources 밑에 log4jdbc.log4j2.proeprties 파일 추가

2) JDBC 연결 정보 수정 => root-context.xml 일부를 수정(p102)

==> 설정을 변경한 후, 테스트 코드를 실행하면 JDBC와 관련된 로그들이 출력됨

 

* 로그 레벨 설정

- 로그의 레벨을 수정해서 많은 양의 로그들이 출력되지 않도록 수정하기

- log4j.xml 수정 => 추가적으로 <logger>를 지정해서 처리하기 (p105)

 

 

반응형