최초의 Spring 안건을 마친 메모 ~MVC편~

소개



퓨어 Java와 DB의 기본 지식만 스타트로부터의 Spring 안건이 파란의 말단 단락했기 때문에, 소감이나 각서등을.
기사의 내용으로서는 튜토리얼 이상, 실천 미만의 이미지.
게재 코드는 동작 확인되어 있지 않으므로 어디까지나 참고로.
영어는 눈이 미끄러지기 때문에 일본어 다양하고 있다, 용서해.

개발 환경



RedHat (개발 환경은 Cent) 7 계
Java8
SpringBoot2.1.6
MySQL8계
STS

MVC 정보



로직(Model)과 화면(View)과 그것을 연결하는 컨트롤러(Controller)로 나누어 설계합시다는 이해.
하지만 Spring에서는 View와 Controller에서 교환하는 데이터를 Model이라고 부르고 있다.
자신이 원래 MVC를 이해하고 있었는지 불안해졌지만, 단어의 정의는 프레임워크마다 다르기 때문에 깊이 생각하는 것은 그만두었다.
htps : // m / 1000 / ms / A 6 A Cbf5f454 A7f53 Af9
htps : // m / 타카세 k / ms / 70 A b5 A 61756 Yes 620 Aes 6

컨트롤러



· 매핑
메소드에는 @GetMapping("test") 라든지를 붙인다. @RequestMapping("/test") 은 낡은 것 같다.

괄호 안에 기술하는 것은 속성이라고 부른다. 상기는 @GetMapping(path="test")의 생략.
하나의 form 태그에 복수 버튼을 배치해 POST하고 싶을 때, html로 name을 지정하면, 컨트롤러의 params 속성과 매핑할 수 있다.

view.html
<form method="POST" action="path1">
    <input type="submit" name="param1" /> ←こちらを押す
    <input type="submit" name="param2" />
</form>

controller.java
@PostMapping(path="path1",params="param1")

・바리데이션
Spring의 기능으로 제공됩니다.BindingResult 의 조작을 할 수 있으면, 프레임워크에 묶이지 않는 밸리데이션을 구현할 수 있다.
그렇지만 어노테이션이나 커스텀 밸리데이션을 구사하면 대부분의 일은 할 수 있을 것 같다.
htps : // 이 m/야쿠모 3390/이고 ms/4에 47930바 643b45b7430

메세지는 messages.properties 로 매입 문자나 다언어 대응도 제공하고 있지만, 메세지를 DB 관리하는 요건이었기 때문에 사용할 수 없었다.

그룹 속성을 추가하면 유효성 검사 대상을 지정하거나 제거 할 수 있습니다.
이것을 위해서 빈 클래스를 만들었지만, 더 스마트한 방법이 있지 않을까 하는 기분.
htps // ch. 아소 ぃ에에 w. 이. jp/엔트리/2019/12/11/104928

・return
기본은 View의 Path를 나타내는 문자열.
redirect나 forward도 있다.
redirect일 때는 RedirectAttributes 에 값을 넣으면 천이처에 도착한다.
h tp // w w. 네. jp/아사히/히시다마/호메/테 ch/쟈ゔぁ/sp린 g/보오 t/우ぇ b/안 t 롯ぇr. HTML#h_Furward_AtTribute

객체를 건네줄 때는 toString() 가 구현되고 있으면 그대로 건네줄 수 있다, 그렇지 않은 때는 한 번 번거로운 것 같다.
htps : // g 란 ​​d 와 g. 기주 b. 이오/bぉg/2016/05/28/레아레 ct-파라메 rsp ring-보오 t/

뷰 정보



thymeleaf (타임 리프)를 사용. 읽기도 철자도 어렵다.
소위 템플릿. 화면 뿐만이 아니라, 생성되는 html을 확인해 두지 않으면 멋지게 기술이 되어 있거나 하기 때문에 주의.

th:field는 편리하지만 name이나 id를 지정하고 싶은 JavaScript와 조합할 때 사용할 수 없는 경우도 있다.
무엇을 하고 있는지 이해해 두면 좋을지도.
htps : // 코 m / 베에 얀 / ms / 5bd820에 55cb53f176b3에

JavaScript 내에서 변수를 사용할 때는 신중하게.
예외가 발견하기 어려운 것과, 객체 통째로 사용하면 html상에 모두 전개되어 시큐리티적으로 좋지 않고, 보았을 때 깜짝 놀라게 한다.
공식 문서 12.2 스크립트 인라인 처리(JavaScript 및 Dart)

서비스 정보



비즈니스 로직을 쓰는 곳.

이번에는 원칙 1 테이블에 대해 하나의 서비스를 만들었다. 그리고 범용 클래스를 몇개인가.
DB에 액세스할 수 있는 층을 짜는 것이 목적이었지만, 그렇게 하면 하나의 클래스가 부풀어 올라 버렸다.
1화면에 대해 1개의 서비스를 만들어, DB로부터 취득한 데이터의 가공까지 Repository로 실시하는 것이 좋은 것일지도.
또는 하나의 화면에 대한 논리를 설명하는 레이어를 추가합니까? . . ?


기타 메모



최초의 Spring 안건을 마친 메모 ~Spring이란 편~
최초의 Spring 안건을 마친 메모 ~데이터베이스편~

좋은 웹페이지 즐겨찾기