반응형

프로그래밍/Spring & Spring boot 44

[Spring/JPA] Mapping (2) @SequenceGenerator , @TableGenerator, @Embeddable, @IdClass

PrimaryKeyMapping 1. 기본 키 생성하는 3가지 방법 (1) IDENTITY 기본 키 생성을 데이터베이스에 위임(MySql) (2) SEQUENCE 데이터베이스 시퀀스를 사용해서 기본키 할당 (3) TABLE 키 생성 테이블을 사용 참고 @Id 적용이 가능한 자바 타입 - 자바 기본형 - 자바 Wrapper 타입 - String - java.util.Date - java.sql.Date - java.math.BigDecimal - java.math.BigInteger 2. @SequenceGenerator 어노테이션으로 기본 키 생성 @Entity(name="SequenceMember") @Table(name="TBL_MEMBER_SECTION03_SUBSECTION01") @Sequenc..

[Spring/JPA ] Mapping(1) @Entity, @Table, @Enumerated, @Access

Mapping 매핑 어노테이션 객체와 테이블 : @Entity, @Table 기본키 매핑 : @Id 필드와 컬럼 매핑 : @Column 연관관계 매핑 : @ManyToOne, @OneToMany, @JoinColumn 필드와 컬럼을 매핑하기 위한 어노테이션 @Column : 컬럼 매핑 @Temporal : 날짜 타입 매핑 @Lob : BLOB, CLOB 타입 매핑 @Transient : 매핑하지 않을 특정 필드에 작성 @Enumerated : Enum 타입 매핑 @Access : JPA가 엔티티에 접근하는 방식을 지정 @Entity, @Table, @Id, @Column /* 해당 클래스를 엔티티를 설정하기 위한 어노테이션 * 프로젝트 내 다른 패키지에 동일 엔티티가 존재한다면 식별을 위해 중복 되지 않..

[Spring/스프링] JPA(Java Persistence API)

JPA(Java Persistence API) - 자바 어플리케이션에서 관계형 테이터 베이스를 사용하는 방식을 정의한 인터페이스 Hibernate - 사용이 보편화 되어 있는 JPA 명세의 구현체 Spring Data JPA - Spring에서 제공하는 모듈로 개발자가 JPA를 더 쉽게 사용할 수 있도록 도와줌 엔터티 매니저(EntitiyManager) - 엔터티를 저장하는 메모리상의 데이터 베이스 - 엔터티를 저장, 수정, 삭제, 조회 등 엔터티와 관련된 모든 일을 함 - 스레드세이프 하지 않기 때문에 동시성 문제 발생 할 수 있어 스레드간 공유 하면 안됨. - web의 경우 일반적으로는 request scope와 일치시킴 엔터티 매니저 팩토리(EntityManagerFactory) - 엔터티 매니저를..

[Spring/스프링] JUnit이란?

JUnit - 자바용 단위 테스트 - 한 가지 기능(함수)마다 일을 잘 수행하는지 확인하며 특정 모듈이 의도 된 대로 정확히 작동하는지 검증하는 절차 - 연관 컴포넌트가 개발되지 않더라도 기능별로 개발이 완료 된 것을 증명할 수 있음 1. 관련 어노테이션 @Test : 독립적으로 테스트를 수행할 메소드를 지정 @Before : @Test가 작성 된 메소드 호출 이전에 반복 되는 준비 작업을 위한 메소드에 작성한다 (테스트 메소드를 실행하기 전에 먼 저 자동으로 실행 된다 @After : @Test가 작성 된 메소드 호출 이후에 실행 @BeforeAll : 모든 테스트를 하기전에 수행할 일 @BeforeEach : 모든 테스트가 일어날때마다 실행 2. 단정문 assertArrayEquals(a,b) : 배..

[Spring/스프링] jQuery ajax , Fetch ajax(Simple string, JSON)

@ResponseBody - view 페이지가 아닌 반환 값을 클라이언트에게 그대로 반환하고자 할 때 사용하는 어노테이션 - 위치는 메소드 레벨, 반환 값 레벨 모두 가능 @RequestBody - 요청에 넘어오는 바디 값이 매개변수에 전달 됨 simple string 서버 전송 테스트 1) jQuery ajax : jQuery 에서 제공하는 ajax 메소드를 사용하면 통신에 필요한 설정을 간편하게 객체로 전달할 수 있고 크로스 브라우징 이슈도 손쉽게 해결할 수 있음 - jsp에 script 작성 jsp에 작성 전달 값 : 응답 값 : jQuery로 전송 - SimpleStringController.java @Controller public class SimpleStringController { @Get..

[Spring/스프링] 파일 업로드 (single file , multi file )

파일 업로드를 위한 환경설정 1) 파일 업로드 commoms-io , commons-fileupload 라이브러리 추가 pom.xml 에 추가(파일 업로드 관련 의존성이 추가되야 라이브러리 사용가능) 2) servlet-context.xml에 CommonsMultipartResolver bean등록 위의 라이브러리를 활용하려면 파일이 전송되었을때 알맞게 가공처리해줄 수 있는 기능을 가진 빈을 등록 라이브러리와 빈등록을 하면 가공된 형태의 객체로 넘겨줄수있음(매개변수에 전달) : 3) multipart로 전송 된 요청에 대한 인코딩 처리 일반 인코딩 필터로 구현하기 어려우므로 스프링에서 제공하는 인코딩 필터 (CharacterEncodingFilter)를 web.xml 에 설정 encoding filter..

[Spring/스프링] SimpleMappingExceptionResolver / @ExceptionHandler 사용하여 예외 처리

SimpleMappingExceptionResolver를 이용한 방식(전역) 1 . NullPointerException 테스트 main.jsp 에 버튼 클릭시 이동할 경로 설정 Exception Handler 사용하기 SimpleMappingExceptionResolver를 이용한 방식(전역) NullPointerException 테스트 사용자 정의 Exception 테스트 nullPointer.jsp에 오류시 나타나는 메세지 작성 ♥ 널 위하여 NullPointerException 발생 ♥ Controller파일의 핸드메소드에 테스트를 위해 일부러 오류 만들기 @Controller public class ExceptionHandlerController { @GetMapping("/simple-null..

[Spring/스프링] redirect / RedirectAttribute - flashAttribute / ModelAndView

redirect : 사용자의 url을 강제적으로 redirect 경로로 이동시키라는 의미 접두사로 redirect: 을 하면 forward가 아닌 redirect 시킴 /main 설정 @Controller public class MainController { @RequestMapping("/main") public void main() {} } 메인페이지에 버튼 생성하고 string-redirect 로 이동 경로 설정 뷰 리졸버를 이용한 뷰 연결하기 문자열로 redirect 하기 문자열로 뷰 이름 반환하여 리다이렉트 확인을 위한 알럿창 Controller파일에 redirect할 핸들러메소드 작성 @Controller public class ResolverConrtroller { @GetMapping("/..

[Spring / 스프링] @RequestBody

@RequestBody : HTTP 요청 본문 자체를 모델로 변환 시켜주는 어노테이션 쿼리 스트링 형태의 문자열이 전송됨 JSON으로 전달하는 경우 Jackson의 컨버터롤 자동 파싱하여 사용할 수 있어 주로 RearAPI 구현 시 많이 사용 @Controller @RequestMapping("/first/*") public class FirstController { @GetMapping("body") public void body() {} @PostMapping("body") public String bodyTest(@RequestBody String body, @RequestHeader("content-type") String contentType, @CookieValue("JSESSIONID") S..

[Spring/스프링] @SessionAttributes를 이용하여 session에 값 담기

@SessionAttributes : 클래스 레벨에 @SessionAttributes 어노테이션을 이용하여 세션에 값을 담을 key 값을 설정 Model 영역에 해당 key 값이 추가 되는 경우 session 영역에 자동으로 등록 됨. @SessionAttributes("id, "a" , "b") 여러개 나열 가능 session 값 담기 @Controller @RequestMapping("/first/*") @SessionAttributes("id") public class FirstController { @PostMapping("login2") public String sessionTest2(Model model, @RequestParam String id) { model.addAttribute("id..

반응형