spring43 Spring - ์น MVC ์์ (ํ์ ์กฐํ) Model addAttribute(String name, Object value) - value ๊ฐ์ฒด๋ฅผ name ์ด๋ฆ์ผ๋ก ์ถ๊ฐํ๋ค. ๋ทฐ ์ฝ๋์์๋ name์ผ๋ก ์ง์ ํ ์ด๋ฆ์ ํตํด์ value๋ฅผ ์ฌ์ฉํ๋ค. Model addAttribute(Object value) - value๋ฅผ ์ถ๊ฐํ๋ค. value์ ํจํค์ง ์ด๋ฆ์ ์ ์ธํ ๋จ์ ํด๋์ค ์ด๋ฆ์ ๋ชจ๋ธ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ค. ์ด ๋ ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ก ์ฒ๋ฆฌํ๋ค. - value๊ฐ ๋ฐฐ์ด์ด๊ฑฐ๋ ์ปฌ๋ ์ ์ธ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์์์ ํด๋์ค ์ด๋ฆ ๋ค์ "List"๋ฅผ ๋ถ์ธ ๊ฑธ ๋ชจ๋ธ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ค. ์ด ๊ฒฝ์ฐ์๋ ํด๋์ค ์ด๋ฆ์ ์ฒซ์๋ ์๋ฌธ์๋ก ์ฒ๋ฆฌํ๋ค. ์ถ์ฒ: https://devlogofchris.tistory.com/53 ํ์์กฐํ ์ปจํธ๋กค๋ฌ @GetMapping("/members.. 2023. 7. 4. Spring - ์น MVC ์์ (ํ์ ๋ฑ๋ก) ํ์ ๋ฑ๋ก ํผ ์ปจํธ๋กค๋ฌ ์์ฑ @Controller public class MemberController { // private final MemberService memberService = new MemberService(); private final MemberService memberService; //์ปจํธ๋กค๋ฌ์ ์๋น์ค๋ฅผ ์ฐ๊ฒฐ @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping(.. 2023. 7. 4. Spring - ์นMVC ์์ (ํํ๋ฉด ์ถ๊ฐ) HomeController ์ถ๊ฐ @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } home.html๋ก ๊ฒฝ๋ก ์ค์ ! ๐ ์ ์ ์ปจํ ์ธ ๋ณด๋ค Controller์์์ ๋งคํ์ด ์ฐ์ ์์๊ฐ ๋ ๋๋ค. 2023. 7. 4. Spring - ์คํ๋ง๋น๊ณผ์ ์์กด๊ด๊ณ2 ์๋ฐ ์ฝ๋๋ก ์ง์ ์คํ๋ง ๋น ๋ฑ๋กํ๊ธฐ ./hello.hellospring/SpringConfig.java package hello.hellospring; import hello.hellospring.repository.JdbcTemplateMemberRepository; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springfram.. 2023. 7. 4. Spring - ์คํ๋ง ๋น๊ณผ ์์กด๊ด๊ณ1 ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ ์์ฑ์์ @Autowired ๊ฐ ์์ผ๋ฉด ์คํ๋ง์ด ์ฐ๊ด๋ ๊ฐ์ฒด๋ฅผ ์คํ๋ง ์ปจํ ์ด๋์์ ์ฐพ์์ ๋ฃ์ด์ค๋ค. ์ด๋ ๊ฒ ๊ฐ์ฒด ์์กด๊ด๊ณ๋ฅผ ์ธ๋ถ์์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ DI (Dependency Injection), ์์กด์ฑ ์ฃผ์ ์ด๋ผ ํ๋ค. ์ด์ ํ ์คํธ์์๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฃผ์ ํ๊ณ , ์ฌ๊ธฐ์๋ @Autowired์ ์ํด ์คํ๋ง์ด ์ฃผ์ ํด์ค๋ค. ์ฐธ๊ณ : helloController๋ ์คํ๋ง์ด ์ ๊ณตํ๋ ์ปจํธ๋กค๋ฌ์ฌ์ ์คํ๋ง ๋น์ผ๋ก ์๋ ๋ฑ๋ก๋๋ค. @Controller ๊ฐ ์์ผ๋ฉด ์๋ ๋ฑ๋ก๋จ ์คํ๋ง ๋น์ ๋ฑ๋กํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ค์ ์๋ฐ์ฝ๋๋ก ์ง์ ์คํ๋ง ๋น ๋ฑ๋กํ๊ธฐ 2023. 7. 4. Spring - ํ์๊ด๋ฆฌ์์ (ํ์ ์๋น์ค ํ ์คํธ) test์ฝ๋๋ ํ๊ธ๋ก ์์ฑํด๋ ๋๋ค. test์ฝ๋๋ ์ด ์ธ๊ฐ์ ๋ก์ง์ผ๋ก ์์ฑ๋ ์ ์๋ค. Given : ๋ฌด์์ด ์ฃผ์ด์ง๋ค๋ฉด when : ์ด๊ฒ์ ์คํํ์๋ then : ๊ฒฐ๊ณผ๊ฐ ์ด๊ฒ์ด ๋์์ผํ๋ค @BeforeEach : ๊ฐ ํ ์คํธ ์คํ ์ ์ ํธ์ถ๋๋ค. ํ ์คํธ๊ฐ ์๋ก ์ํฅ์ด ์๋๋ก ํญ์ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์์กด๊ด๊ณ๋ ์๋ก ๋งบ์ด์ค๋ค. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertio.. 2023. 7. 4. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 ๋ค์