728x90

Portfolio, Project 36

Project (5-1) 상품 등록 및 수정 (2)

- ItemService.java @Transactional(readOnly = true) //상품 데이터를 읽어오는 트랜잭션을 읽기 전용을 설정한다. //JPA가 더티체킹(변경감지)을 수행하지 않아서 성능을 향상 시킬 수 있다. public ItemFormDto getItemDtl(Long itemId) { List itemImgList = itemImgRepository.findByItemIdOrderByIdAsc(itemId); //해당 상품의 이미지를 조회한다. 등록순으로 가지고 오기 위해서 상품 이미지 아이디 오름차순으로 가지고 온다. List itemImgDtoList = new ArrayList(); for (ItemImg itemImg : itemImgList) { //조회한 ItemImg..

Project (5-1) - 상품 등록 및 수정 (1)

- 상품 등록하기 - ItemImg.java @Entity @Table(name = "item_img") @Getter @Setter public class ItemImg extends BaseEntity{ @Id @Column(name = "item_img_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private String imgName; private String oriImgName; private String imgUrl; private String repImgYn; @ManyToOne(fetch = FetchType.LAZY) // 상품 엔티티와 다대일 단방향 관계로 매핑한다. // 지연 로딩을 설정하여 매핑된 상..

Project - (4) 연관관계 매핑

- ERD - 구성할 ERD는 위와 같다. - 연관 관계 매핑 종류 1. 일대일 : @OneToOne 2. 일대다 : @OneToMany 3. 다대일 : @ManyToOne 4. 다대다 : @ManyToMany - 일대일 단방향 매핑 - Cart.java @Entity @Table(name = "cart") @Getter @Setter @ToString public class Cart{ @Id @Column(name = "cart_id") @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @OneToOne //회원 엔티티와 일대일로 매핑한다. @JoinColumn(name = "member_id") //매핑할 외래키를 지정한다. name ..

Project (3) - 스프링 시큐리티

- security dependency 추가 org.springframework.boot spring-boot-starter-security 1. 스프링 시큐리티를 추가하게되면 모든 요청은 인증을 필요로 한다. - 스프링 시큐리티는 기본적으로 1.Loing 2. Logout 기능을 제공한다. - 스프링 시큐리티 설정 - SecurityConfig @Configuration @EnableWebSecurity //SpringSecurityFilterChain이 자동으로 포함된다. //WebSecurityConfigurerAdapter를 상속받아서 메소드 오버라이딩을 통해 보안 설정을 커스터마이징할 수 있다. public class SecurityConfig { @Autowired MemberService m..

Project (2) - Thymeleaf

- @RequestParam - Controller 코드 @Controller @RequestMapping(value = "/thymeleaf") //클라이언트의 요청에 대해서 어떤 컨트롤러가 처리할지 매핑하는 어노테이션이다. //url에 "/thymeleaf" 경로로 오는 요청을 Controller가 처리하도록 한다. public class ThymeleafExController { @GetMapping(value = "/ex01") public String thymeleafExample01(@RequestParam(value = "asd") int a, Model model) { model.addAttribute("data", "타임리프 예제 입니다."); model.addAttribute("a", ..

Project - (1) Spring Data JPA

- Maven Setting - 여러가지의 프로젝트를 동시에 진행하면 메이븐의 의존성이 서로 꼬일 수 있으므로 프로젝트별로 다른 폴더를 Local repository를 지정하기를 권장한다. - application.properties 설정 - server.port = 80 : 애플리케이션 실행할 포트 설정 - application.name = spring-demo : 설정해둔 애플리케이션의 값을 읽어와서 자바 코드에서 사용해야 하면 @Value 어노테이션을 통해서 읽어올 수 있다. - JPA 사용 시 장점 1. 특정 데이터베이스에 종속되지 않음 2. 객체지향적 프로그래밍 3. 생산성 향상 - JPA 사용 시 단점 1. 복잡한 쿼리 처리 2. 성능 저하 위험 3. 학습 시간 - ORM : Object Re..

728x90