spring

spring/spring & boot

spring 설정 파일 : web.xml , servlet-context, root-context

1. web.xml web.xml은 Was(ex : Tomcat)가 처음 실행할 때 web.xml 파일을 제일 먼저 읽고 거기에 정의된 구성대로 프로젝트를 설정해준다. 쉽게 말하자면 내 Spring project의 구성을 설정하는 파일이고 제일 먼저 설정되는 파일 web.xml 내부에서 spring 관련 설정 파일로 servlet-context.xml, root-context.xml 이 존재 contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener encodingFilter org.springframework.web.filter.CharacterEncodingFilte..

spring/spring db2

4. 데이터 접근 기술 - MyBatis(springboot, gradle)

1. MyBatis 소개 JdbcTemplate 보다 더 많은 기능을 제공하는 SQL Mapper JdbcTempate이 제공하는 대부분의 기능을 제공 SQL을 XML에 편리하게 작성 및 동적 쿼리를 매우 편리하게 작성 가능 project에서 동적 쿼리와 복잡한 쿼리가 많을 시 MyBatis를 사용하고, 단순 쿼리가 많을 시, JdbcTemplate을 선택해서 사용하면 된다. MyBatis 공식 사이트 : https://mybatis.org/mybatis-3/ko/index.html 현재 수행하는 MyBatis 방식은 spring boot에서 권장하는 방식 1.1. spring(maven)에서 spring boot(gradle)에서 Mybatis 사용방법 차이점 spring - maven pom.xml ..

spring/spring db2

3. 데이터 접근 기술 - 테스트

1. 테스트 - 데이터베이스 연동 데이터 접근 기술은 실제 데이터베이스에 접근해서 데이터를 잘 저장하고 조회할 수 있는지 확인하는 과정이 필요 test case는 src/test에 있기 때문에, test 실행시 src/test 내부 application.properties 파일이 우선순위를 가지고 실행 해당 설정 파일에도 spring.datasource.url 같은 db 연결 설정 필요 만약 main의 application.properties의 설정을 그대로 사용하고 싶으면 test/resources 패키지에 application.properties 파일 자체가 존재하지 않아야 사용 가능 1.1. h2 db datasource 설정 등록 test/resources/application.properties..

spring/spring & boot 설정

4. SpringBootApplication 설정, @Import, Profile, @EventListener

1. bootApplication 설정 configFile : 수동 bean 등록 file testDataInit : 초기 test file @EventListener(ApplicationReadyEvent.class) @PostConstruct bootApplication @Import @SpringBootApplication(scanBasePackages = "") app 내부 @Bean, @Profile("") application.properties main : local test : test 해당 파일 code package hello.itemservice.config; @Configuration public class MemoryConfig { @Bean public ItemService it..

spring/spring & boot 설정

⭐️ 3. Domain 이름 규칙 및 Domain package 위치

1. 패키지 구조 2. Domain ItemSearchCond & ItemUpdateDto 두개 파일 모두 DTO를 의미 팀 내, 규칙으로 파일명 설정 Cond같은 경우 목적이 검색조건 data를 넘겨 주는 것이기 때문에 dto이긴 하지만 Cond로 합의 나머지 data 이동 Domain은 끝에 Dto 붙이는 규칙 설정 완전 핵심 dto의 경우 딱 이름만 씀 Dto(data transform object) 데이터 전송 객체 기능은 없고 data를 전달만 하는 용도록 사용되는 객체 Dto 위치 최종적으로 사용하는 단계에 위치 시킴. ex) 회원 조회시, 처음으로 data를 dto에 저장하는 위치는 repository. 따라서 repository에 dto를 위치시킴 애매한 경우, Domain 폴더를 따로 두..

spring/spring db2

1. 데이터 접근 기술 시작

1. 데이터 접근 기술 SQLMapper JdbcTemplate MyBatis ORM 관련 기술 JPA, Hibernate 스프링 데이터 JPA Querydsl 2. 프로젝트 구조 설명 2.1. 패키지 구조 2.2. Domain ItemSearchCond & ItemUpdateDto 두개 파일 모두 DTO를 의미 팀 내, 규칙으로 파일명 설정 Cond같은 경우 목적이 검색조건 data를 넘겨 주는 것이기 때문에 dto이긴 하지만 Cond로 합의 나머지 data 이동 Domain은 끝에 Dto 붙이는 규칙 설정 완전 핵심 dto의 경우 딱 이름만 씀 Dto(data transform object) 데이터 전송 객체 기능은 없고 data를 전달만 하는 용도록 사용되는 객체 Dto 위치 최종적으로 사용하는 단..

spring/spring db1

6. 스프링과 문제 해결 - 예외 처리, 반복

1. 체크 예외와 인터페이스 서비스 계층이 예외에 대한 의존을 해결 하기 위해서 throws SQLException도 제거 필요 서비스가 처리할 수 없는 repository에서 던지는 SQLException 체크 예외를 런타임 예외로 전환해서 서비스 계층에 던진다. 인터페이스를 도입하면 인터페이스에만 의존하면 된다. 구현 기술을 변경하고 싶으면 DI를 사용해서 MemberService 코드의 변경 없이 구현 기술을 변경할 수 있다. memberRepository interface package hello.jdbc.repository; import hello.jdbc.domain.Member; public interface MemberRepository { Member save(Member member);..

spring/spring db1

5. 자바 예외 이해

WAS에서 예외를 처리하지 못하는 경우 : main() 과 달리 사용자에게 개발자가 지정한, 오류 페이지를 보여준다. 1. 체크 예외 활용 2가지 언체크(런타임 예외를 사용) 비즈니스 로직상 의도적으로 던지는 예외에만 사용 계좌 이체 실패 예외 결제시 포인트 부족 예외 로그인 ID, PW 불일치 예외 현실 throws 예외의 경우 service logic에서 처리하지 못하는 것이 대부분이다. 그렇지만 throws를 계속 날려줘야하므로 불편하고 의존성 문제가 발생한다. - rumtime예외를 권장하는 이유 해당 예외들은 보통 서블릿의 오류 페이지나, 스프링 MVC가 제공하는 controllerAdive에서 예외를 공통으로 처리 한다. 해결 불가한 공통 예외는 별도의 오류 로그를 남기고, 개발자가 오류를 빨..

wooweee
'spring' 카테고리의 글 목록 (3 Page)