일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- JAVA11
- 자바입력
- SpringBoot 2
- 자바 thread 실행 순서 제어
- 수학
- Easy
- input
- R
- array
- scanner
- 자바 스레드 실행 순서 제어
- hash table
- Kadane's Algorithm
- 카데인 알고리즘
- 사칙연산
- heroku
- Today
- Total
목록SpringFramework/References (12)
DeFacto-Standard IT
Spring Boot 2.4 기준 - application.properties wait.for-time=1s - MainApplication @SpringBootApplication @ConfigurationPropertiesScan // ConfigurationProperties를 스캔하도록 설정. Since 2.2.0 public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); } } - WaitProperties properties를 읽어서 사용하는 클래스 @ConfigurationProperties("wait") @ConstructorBi..
ObjectMapper Class의 readValue()를 사용하면 String Type의 값을 Object Type으로 변환할 수 있다. 단, 그 사용법이 조금 까다롭긴 하지만, 코드를 봤을 때 그 의도가 상당히 명확하다. public class Main { // throws Exceptions는 제외 public static void main(String[] args) { String personString = "{\"age\":3, \"grade\":1, \"name\":\"ycp\", \"subName\":\"YCP\"}"; ObjectMapper mapper = new ObjectMapper(); Person p = mapper.readValue(personString.getBytes("UTF-..
@RequestBody는, Client에서 Server로 객체의 내용을 전송할 때, 이를 객체로 DataBinding하여 사용할 때 용이하다. 네트워크를 통해서 전송하려면 Object는 무조건 String으로 전송해야 하는데, 다시 받는 곳에서는 String을 Object로 바로 받아서 사용한다면 굉장히 편할 것이다. Client에서는 JavaScript Library인 JQuery의 $.ajax()에서 JSON.stringify()함수를 사용하여 Object를 String으로 변환시킨 후 이를 인자로 태워서 Request한다. @RequestBody는 인자 앞에 붙여서 사용할 수 있다. 이때, JSON의 키 값이 받으려는 Object의 필드명과 동일해야 한다. @RestController @Reques..
JSONObject jObject = new JSONObject();JSONArray jArray = new JSONArray(); JSON 포맷의 객체를 직접 조합할 수 있어 편리하다. 다만, 한 개의 객체만 있더라도 이 객체에 대한 키값이 존재해야 한다. 객체 내에 있는 필드에 대한 키값이 아닌, 객체 자체에 대한 키값을 의미한다. 길이가 길어진다면 점점 복잡해지는 경향이 있다. 한 객체의 정보만을 넘기는 것이 아니라, 여기에 부가적인 정보까지 포함하여 보내야 하는 경우에 사용했다. 부가적인 정보를 포함시키기 위해, 이를 위한 Class를 생성하는 것도 좀 아닌 것 같아서, Response에 객체 정보 뿐만 아니라, 추가적인 정보를 첨가하는 클래스들을 만들고, 이 내에서는 net.sf.json 라이브..
jackson-databind 라이브러리는 REST API를 구현하는데 자주 이용된다. 그 외에 json포맷으로 바꾸는데 여러가지 라이브러리가 쓰인다. gson, json, jackson, net.sf 등의 라이브러리가 있다. 이 라이브러리에는 ObjectMapper라는 클래스가 있는데, Object to JSON / JSON to Object를 모두 지원한다. 여기서는 Object Serialization에 사용되는 writeValueAsString()을 알아볼 것이다. ObjectMapper# writeValueAsString()은 인자로 객체를 넘겨주기만 하면 해당 객체를 JSON 포맷을 String Type으로 변환하여 리턴한다. - ObjectMapper# writeValueAsString(Ob..
1. @ResponseBodyClient에서@RestController Annotation이 붙은 Controller Class에 Ajax Call을 하는 경우이다. @RestController에 포함된 Annotation인 @ResponseBody를 사용하여, HTTP Body에 Object가 JSON 포맷으로 들어간다. @RestController는 Class단에서 매핑한다. 즉, 해당 Annotation이 붙은 모든 메서드는 @ResponseBody Annotation이 붙은 효과를 볼 수 있다. Client는 JavaScript의 Framework인 JQuery의 $.ajax() 등을 통해 Response의 Content-Type을 application/JSON으로 명시할 경우, success(d..
JSON to Object 1. 깊이1의 JSON 객체 - JSPfunction sendAjax(content) { var username = $("#username").val(); var datas = { "boardno" : ${boardVO.boardno}, "username" : username, "content" : content }; var jsonData = JSON.stringify(datas); $.ajax({ method : 'POST', url : '/rest/reply/', data : jsonData, contentType: "application/json", success : function(){ alert("AJAX성공"); }, error : function(){ alert(..
Spring Form Data to Object - Controller ( GET Method )@RequestMapping(value="/register", Method=RequestMethod.GET) public String registerUserGet(Model model) { // 반드시 객체를 생성 후 Model객체를 사용하여 View에 넘겨야 함, 안만들면 Exception발생 User user = new User(); model.addAttribute("user", user); return "jsp"; }반드시 객체를 하나 생성하여, Model을 통해 View로 넘겨야 한다. - Spring Form (jsp.jsp) modelAttribute속성의 값은 model.addAttribute(..
client에서 server로 request할 시에 여러가지 데이터를 담아서 보내는 경우가 많은데,controller에서는 이 담겨온 정보를 plain text로 일일이 받아서 사용하기 보다는 객체로 DataBinding을 하여 바로 쓰는 것이 코드가 간결하고 사용하기도 편하다.여러가지 경우에 대해서 DataBinding을 생각해 볼 수 있다. HTML Form Data to Object HTML Form Data를 전송했을 때, Controller에서 Object로 바로 받아서 사용할 수 있다. - HTML Form ... ... HTML form에서 값을 입력할 경우에는 태그의 name 속성의 값이 바인딩 하려는 객체에 대한 클래스의 변수명과 같이 "name", "email", "text"와 매치가 ..
View를 모듈화하여, 필요한 view를 동적으로 배치한다. 마치 Composite 패턴처럼 view를 view들이 이루는 개념을 적용하였다. 장점 : 최종 view에 대한 전체적인 layout을 정의하고, 이 layout에 서브 view를 동적으로 삽입하여 보여주므로, layout에 해당하는 파일 하나만 수정하면 된다. 따라서 공통된 부분이 존재하는 view의 비율이 증가 할수록 재사용 성이 향상된다. 단점 : 공통된 부분이 없는 view의 비율이 증가할수록 복잡도만 증가한다.