Supersett
개발자의 하루
Supersett
Blockchain Dev
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프론트
    • 회사생활
    • 블록체인
    • 프로젝트
      • 창업 프로젝트 (DRF + AWS)
      • Spring 프로젝트
    • [중앙대]멋쟁이 사자처럼
    • 기술서적
    • Problem Solving
      • 알고리즘
    • 일기장
      • 하루 정리
      • 삽질 일기
      • 조급할 때 눌러보기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 멋쟁이 사자처럼 면접
  • 국비교육
  • 블록체인정보가공
  • 멋쟁이사자처럼 중앙대
  • java
  • 멋사 중앙대
  • 면접준비
  • 국비
  • DEPROMEET
  • Multichain API
  • 국비지원
  • 초보개발자
  • 글리치해커톤
  • 비트코인
  • 프로젝트
  • 블록체인 서버설계
  • 멋쟁이 사자처럼
  • 구글소셜로그인
  • 자바스크립트
  • 자바
  • 해커톤
  • 취업준비
  • Near Scan
  • 신입개발자
  • Luniverse
  • 멋쟁이 사자처럼 서류
  • 니어프로토콜
  • 디프만16기
  • 컴퓨터학원
  • Near Explorer

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Supersett

개발자의 하루

220321 [월] Transaction Manager , REST
일기장/하루 정리

220321 [월] Transaction Manager , REST

2022. 3. 21. 12:24

오늘의 부트...


[오늘의 계획]
1. 수업내용 복습

2. 부트스트랩 버튼 (마이페이지)


[오늘의 공부]

서비스클래스에서 여러 dao를 불러와다가 하나의 메소드를 구성하는데, 불러온 dao의 메소드중 하나라도 오류가 발생을 한다면 최종 결과에 영향을 주므로 데이터 무결성을 위반하게 된다. 

->transaction manager이 필요하다.

해결법 ) 예외가 발생되기 전에 실행된 모든 sql 명령을 취소되도록 설정한다. RollBack 처리 한다.

ㅡSpring Framework 에서 제공하는TransactionManager 관련 클래스를 이용하여 처리 가능 - AOP

 

[Spring Framework의 TransactionManager를 이용하여 트랜잭션 처리하는 방법]

1. spring-tx 라이브러리를 프로젝트에 빌드처리 - [pom.xml] >> spring-jdbc 라이브러리에 의해 자동빌드 됨.

2. Bean Configuration File 에서 TransactionManager 관련 클래스를 Spring bean을 등록 - [root-context.xml]

3. Bean Configuration File 에서 AspectJ 프로그램을 이용하여 트랜잭션 처리되도록 등록 (AOP) - [servlet-context.xml]

[servlet-context.xml 설정하기]

Spring-tx 네임스페이스(spring-tx.xsd)를 추가해야한다.

ㅡ <tx:advice> : TransactionManager 관련 Spring Bean을 Advisor로 설정하기 위한 엘리먼트 

<!-- advice : TransactionManager 관련 Spring Bean를 Advisor로 설정하기 위한 엘리먼트 -->
<!-- Advisor : JoinPoint가 설정된 횡단관심모듈이 등록된 Advice 클래스의 Spring Bean -->
<!-- id 속성 : advice 엘리먼트를 구분하기 위한 식별자를 속성값으로 설정 -->
<!-- transaction-manager 속성 : TransactionManager 관련 Spring Bean의 beanName를 속성값으로 설정 -->
<!-- attributes : 트렌젝션 관리자에 의해 처리될 메소드를 설정하는 엘리먼트 -->
<!-- method : 트렌젝션 관리자에 의해 처리될 메소드 이름을 설정하는 엘리먼트 -->
<!-- name 속성 : 트렌젝션 관리자에 의해 처리될 메소드 이름을 속성값으로 설정 -->
<!-- rollback-for 속성 : ROLLBACK 명령이 실행되기 위한 예외를 속성값으로 설정 -->
<!-- read-only 속성 : false(기본) 또는 true(읽기 전용) 중 하나를 속성값으로 설정 -->

 

<aop:config>

: aspectJ 프로그램을 이용하여 aop 설정 엘리먼트

ㅡ advisor : tx 네임스페이스의 advice 엘리먼트로 등록된 advisor 을 사용하기 위한 엘리먼트

ㅡ advice-ref 속성 : tx 테임스페이스의 advice 엘리먼트의 식별자를 속성값으로 설정 

 

[TransactionManager 관련 어노테이션 설정하기]

1. 해당 메소드에 @Transactional 붙인다.

2. bean configuration file 에서 transactionManager 관련 어노테이션이 동작되도록 설정 - [root-context.xml]

[root-context.xml]

<tx : annotaion-driven>

: @Transactional 어노테이션을 사용하여 TransactionManager 관련 Spring Bean으로 트랜잭션 처리기능을 제공하기 위한 엘리먼트

 


[REST 서비스를 제공해주는 프로그램]

 json 으로 반환값을 준다.

 

REST : 클라이언트 요청에 대해 요청 처리 메소드에서 요청 처리 후 처리결과를 뷰페이지(JSP)가 아닌 직접 리소스(TEXT,XML,JSON 등)으로 응답하는 기능

ㅡ 다양한 기기에서 웹프로그램의 요청에 대한 공통적으로 처리 가능한 텍스트 데이터로 응답하는 것을 목적으로 만든 프로그램

ㅡ 사이트 구현시 AJAX 기능으로 REST 웹프로그램을 요청하고 처리결과를 JSON으로 응답받아 DHTML로 페이지를 변경할 수 있도록 만든다 >> 동적페이지 구현 가능

 

 

[restfulController]

@ResponseBody : 요청처리 메소드의 반환값(문자열)을 클라이언트에게 직접 텍스트로 응답되도록 설정하는 어노테이션 -> 문자열(String)으로만 응답 가능 - Java 객체는 응답 불가능

 

@RequestBody : POST,PUT,PATCH,DELETE 등의 요청에 의해 전달된 모든 값을 하나의 문자열로 전달받아 저장하기 위한 어노테이션

-> GET방식으로 요청하여 전달된 값은 매개변수에 저장될 수 없다.

-> 전달값은 자바스크립트의 Object 객체 형태로 전달된다 ( 이름=값&이름=값&...) >> {"이름":값,"이름:값....}

 

 

제일 좋은방법은... dto클래스가 있는것이 제일 좋습니다~!

 

전달값을 Map으로 받으면 간편하다!!

 

내일 할 것 : ajax, json으로 응답받아 페이징처리,ExceptionHandler 

 

 

 

 

 

 

 

 

 

 

 

 

 

'일기장 > 하루 정리' 카테고리의 다른 글

220323 [수] ExceptionHandler , 암호화처리  (0) 2022.03.23
220322 [화] Pager 클래스 , AJAX로 게시판 형태 만들기  (0) 2022.03.22
220319 [토] 폴더,파일 정리 / 부트스트랩 마무리를 향해..  (2) 2022.03.19
220318 [금] Mybatis 환경설정 2 , JUnit  (0) 2022.03.18
220317 [목] Tiles (Template Page), Mybatis 환경설정  (2) 2022.03.17
    '일기장/하루 정리' 카테고리의 다른 글
    • 220323 [수] ExceptionHandler , 암호화처리
    • 220322 [화] Pager 클래스 , AJAX로 게시판 형태 만들기
    • 220319 [토] 폴더,파일 정리 / 부트스트랩 마무리를 향해..
    • 220318 [금] Mybatis 환경설정 2 , JUnit
    Supersett
    Supersett
    하루를 돌아보고 공부한 티를 내기 위해 블로그를 만들었습니다.

    티스토리툴바