스프링 강의 필기

스프링 강의 필기

db 2편 - 스프링 트랜잭션 전파

해당 코드를 한 번 봐보자. @Test void double_commit() { log.info("트랜잭션1 시작"); TransactionStatus tx1 = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("트랜잭션1 커밋"); txManager.commit(tx1); log.info("트랜잭션2 시작"); TransactionStatus tx2 = txManager.getTransaction(new DefaultTransactionAttribute()); log.info("트랜잭션2 커밋"); txManager.commit(tx2); } 우선 트랜잭션 1과 트랜잭션 2는 분명히 다른 트랜잭션이다. 트랜잭션이 각각 수행되면..

스프링 강의 필기

DB 2편 - 스프링 트랜잭션 이해

이번 포스팅에서는, 스프링 트랜잭션이 제공하는 다양한 기능들에 대해 정리해보자. (이전 DB 1편 포스팅을 참고하자) 트랜잭션 적용 확인 트랜잭션이 적용되고 있는지 테스트코드로 한번 확인해보자. @Slf4j @SpringBootTest public class TxBasicTest { @Autowired BasicService basicService; @TestConfiguration static class TxApplyBasicConfig { @Bean BasicService basicService() { return new BasicService(); } } @Test void proxyCheck() { log.info("aop class = {}", basicService.getClass()); as..

스프링 강의 필기

DB 강의 1편 - 트랜잭션 문제 해결(2)

1편에 이어, 다시 한 번 코드를 봐보자. TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try { bizLogic(fromId, toId, money); transactionManager.commit(status); } catch (Exception e) { transactionManager.rollback(status); throw new IllegalStateException(e); } 다른 서비스에서 트랜잭션을 시작하려면, 지금 코드처럼 트랜잭션을 시작하고, 성공하면 커밋하고 실패하면 롤백하는 코드를 추가로 작성해줘야 한다. 난 단순히 서비스 로직에만 집중하고 싶은데....

스프링 강의 필기

DB 강의 1편 - 트랜잭션 문제 해결(1)

@RequiredArgsConstructor public class MemberServiceV2 { private final DataSource dataSource; private final MemberRepository memberRepository; public void accountTransfer(String fromId, String toId, int money) throws SQLException { Connection con = dataSource.getConnection(); try { con.setAutoCommit(false); // 트랜잭션 시작 bizLogic(con, fromId, toId, money); // 비즈니스 로직 con.commit(); // 성공시 커밋 } catch ..

스프링 강의 필기/스프링 MVC 1편

7) 스프링 MVC - 웹 페이지 만들기

이제 배운 것들을 토대로 간단한 게시판을 만들어보자. 상품을 관리할 수 있는 서비스를 만들어본다 가정하자. 상품에는 id, 이름, 가격, 수량이라는 속성이 존재한다. 이 상품의 목록, 상세, 등록, 수정할 수 있는 기능을 구현하려 한다. @Data public class Item{ private Long id; private String itemName; private Integer price; private Integer quantity; public Item(){ } public Item(String itemName, Integer price, Integer quantity){ this.itemName = itemName; this.price = price; this.quantity = quantit..

스프링 강의 필기/스프링 핵심 원리 - 기본편

강의 수강 후 전반적인 정리 - 1편

출처:https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 강의를 수강한 후, 전반적인 흐름 및 나중에 복기할 수 있게 정리해보려한다..(과외 학생 설명하듯이 진행해보겠다) "승수씨.. 정말 미안한데 부탁이 있어요. 우리가 급히 기능을 만들어야해요. 회원 / 주문&할인정책 을 급하게 만들어야하는데....

스프링 강의 필기/스프링 MVC 1편

6) 스프링 mvc 기본 기능

*우선 로그에 대해 간단히 알아보자 우리는 평소에 System.out.println()같은 시스템 콘솔로 결과를 확인했다. 운영 시스템에서는 이러한 시스템 콘솔을 사용해서 출력하지 않고, 로그 라이브러리를 활용한다. 스프링 부트에서는 기본적으로 Logback,Log4J,Log4J2 등 수많은 라이브러리가 있는데 이를 통합해서 인터페이스로 제공하는 SLF4J 라이브러리를 기본으로 쓴다. 즉, SLF4J는 인터페이스이고, 구현체로 Logback 같은 라이브러리를 사용한다. private Logger log = LoggerFactory.getLogger(getClass()); private static final Logger log = LoggerFactory.getLogger(XXX.class) @Slf4j..

스프링 강의 필기/스프링 MVC 1편

5) 스프링 MVC - 구조 이해

우리가 4) 파트에서 MVC를 실제로 구현한 것과 실제 스프링MVC의 구조를 비교해보자. 사실 지금까지 우리가 한 과정들은 스프링MVC의 구조를 이해하기 위해 한 행동들이다. 동일하다. 그러면 이름을 이제 스프링MVC에 맞게 수정해보자. FrontController -> DispatcherServlet handlerMappingMap -> HandlerMapping MyHandlerAddapter -> HandlerAdapter ModelView -> ModelAndView viewResolver -> ViewResolver MyView -> View 스프링 MVC도 FrontController 패턴으로 구현되어 있다. 해당 FrontController가 바로 DispatcherServlet이다. 그리고..

void_melody
'스프링 강의 필기' 카테고리의 글 목록