-목차-
구조1차
구조2차
구조 1차
구조 2차 코드 참조해서 봐,,,
구조 2차
-코드-
DemoApplication.java (실행파일)
DmContestController.java (컨트롤러)
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.demo.dto.D1;
import com.example.demo.service.DemoService2;
@Controller
@RequestMapping("/contest")
public class DmContestController {
@Autowired
DemoService2 demoservice;
// 첫번째 방법 - test infos (포스트맨)
@GetMapping("/infos")
@ResponseBody
public String contests() {
return "hello world";
}
// 두번째 방법 - contest info (포스트맨)
// @PathVariable : PathVariable의 경우 url에서 각 구분자에 들어오는 값을 처리해야 할 때 사용합니다.
@GetMapping("/infos11/{page}")
@ResponseBody
public ArrayList<String> contests(@PathVariable int page) {
Map<Integer, ArrayList<String>> db = new HashMap<Integer, ArrayList<String>>();
ArrayList<String> data = new ArrayList<String>();
data.add("harry potter");
data.add("ring of king");
data.add("hello world");
db.put(1, data);
db.put(2, data);
return db.get(page);
}
// 셋번째 방법 - contest info3 (포스트맨)-------------
@GetMapping("/infosField")
@ResponseBody
public String contest(String field) {
String a = field + "받음";
return a;
}
// 넷번째 방법 - contest info2 (포스트맨)-------
// @RequestBody : 객체 받을 때 사용하는거
// 특정 분야 콘테스트 조회
@GetMapping("/infos12")
@ResponseBody
public List<Integer> contest(@RequestBody D1 d1) {
List<Integer> db2 = new ArrayList<Integer>();
db2.add(d1.test1);
db2.add(d1.test2);
db2.add(d1.test3);
db2.add(demoservice.test().size()+1);
return db2;
}
// like (포스트맨)--------------
// 특정 콘테스트 좋아요
@PostMapping("/like")
@ResponseBody
public List<Integer> like(@RequestParam int test1, @RequestParam int test2, @RequestParam int test3) {
List<Integer> db2 = new ArrayList<Integer>();
// db2.add(test1);
db2.add(test2);
db2.add(test3);
return db2;
}
}
D1.java (모델)
package com.example.demo.dto;
public class D1 {
public Integer test1;
public Integer test2;
public Integer test3;
}
ContestRepository.java (JPA 사용할려고 "인터페이스" 입니다!!)
Contest.java (JPA 사용할려고 "테이블코드")
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity
@Table(name = "contest")
public class Contest {
// 연습용
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private @Column(name = "id") int id;
//공모전 이름/설명
private @Column(name = "name") String name;
private @Column(name = "intro") String intro;
//공모전 분야/부문
/**
* 알고리즘 : Algorithm
* 디자인 : Design
* 임베디드 : Embedded
* 빅데이터 : Bigdata
* 모바일 : Mobile
* 게임 : Game
* 블록체인 : Blockchain
* 해킹보안 : Security
*/
private @Column(name = "field") String field;
private @Column(name = "department") String department;
//공모전 주최명/지역명
private @Column(name = "organizationName") String organizationName;
private @Column(name = "organizationArea") String organizationArea;
//공모전 접수기간
private @Column(name = "subStart") LocalDateTime subStart;
private @Column(name = "subEnd") LocalDateTime subEnd;
//공모전 예선기간
private @Column(name = "preStart") LocalDateTime preStart;
private @Column(name = "preEnd") LocalDateTime preEnd;
//공모전 본선기간
private @Column(name = "onStart") LocalDateTime onStart;
private @Column(name = "onEnd") LocalDateTime onEnd;
//공모전 좋아요
private @Column(name = "likeNum") int likeNum;
//공모전 URL
private @Column(name = "homepageURL") String homepageURL;
//공모전 이미지 (URL)
private @Column(name = "imageURL") String imageURL;
//공모전 추가자료 (URL)
private @Column(name = "attachedFileURL") String attachedFileURL;
}
DemoService2.java (서비스코드)
(참고 - 서비스코드 기본 형태)
'■ Spring + Boot' 카테고리의 다른 글
[Spring] @pathVariable 어노테이션 (0) | 2020.08.30 |
---|---|
[Spring] CommandLineRunner(커맨드라인러너) - 초기 작업 주기 (0) | 2020.08.29 |
[Spring] 구조 1차, 구조 2차 (연습한거) (0) | 2020.08.27 |
[Spring] 컨트롤러(Controller) 사용법 ★ (0) | 2020.08.26 |
[Spring] 설정 값을 적어주는 곳 -> application.properties (0) | 2020.08.25 |