SpringFramework/SpringBoot 기초10 [SpringBoot] JPA 1. build.gradle에 라이브러리 추가 (implementation 'org.springframework.boot:spring-boot-starter-data-jpa') dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runti.. 2021. 12. 12. [SpringBoot] 스프링을 사용한 테스트 @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { // given Member member = new Member(); member.setName("hello"); // when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMem.. 2021. 12. 11. [SpringBoot] 스프링 DB 접근 기술 1. H2 데이터베이스 설치(https://www.h2database.com/html/main.html) h2 데이터베이스 설치 후 설치 폴더 > bin > h2.bat를 실행하면 db를 조작할수있는 화면이 뜬다 Table을 생성하고 간단하게 데이터를 몇개 삽입 create table member ( id bigint generated by default as identity, name varchar(255), primary key(id) ) insert into member(name) values ('spring'); select * from member; 2. DataBase 세팅 resource/application.properties에 db 정보를 입력한다. spring.datasource.url.. 2021. 12. 11. [SpringBoot] 웹 MVC 개발 WelcomePage 우선순위 1. HomeController 2. index.html @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } URL은 같아도 Post 인지 Get인지에 따라서 Mapping 되는 메소드가 서로 다름 return "redirect:/"는 특정.. 2021. 12. 7. [SpringBoot] 스프링 빈과 의존관계 - 자동의존관계(컴포넌트 스캔), 자바코드로 직접 등록하기 컴포넌트 스캔과 자동의존관계설정 어노테이션을 보고 스프링 컨테이너에 등록 및 연결 (@AutoWired) @Component 애노테이션이 있으면 스프링 빈으로 자동등록 (@Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다.) @Component를 포함하는 애노테이션 : @Controller, @Service, @Repository 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때, 기본으로 싱글톤으로 등록 (유일하게 하나만 등록하여 공유) 따라서 같은 스프링 빈이면 모두 같은 인스턴스 @Controller 어노테이션이 있을 경우 스프링이 따로 관리를 한다. 여러 곳에서 쓰이는 객체는 생성 후 스프링 컨테이너에 보관해서 같이 쓴다. 매번 new를 쓰지 않아도 되는 장점.. 2021. 12. 7. [SpringBoot] 스프링 백엔드 개발 예제 - 회원 서비스 회원 도메인과 리포지토리 만들기 class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach // 메소드가 끝나고 호출하는 콜백백 메소 public void afterEach() { repository.clearStore(); } @Test public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); // Member result = repository.findById(member.getId()).get(); // System.out.println.. 2021. 12. 6. [IntelliJ] 모든 단축키 모음 | General ⌘0~9(Alt+#[0-9]) : 각 단축키에 해당하는 도구창을 엽니다. 예를 들어 ⌘1 을 사용하면 프로젝트 도구창을 토글할 수 있습니다. ⌘⇧F12(Ctrl+Shift+F12) : 편집기(Editor) 영역을 최대로 크기로 토글합니다.( Toggle maximizing editor) ⌘,(Ctrl+Alt+S) : 설정(Preferences) 창을 엽니다. ( Open Settings dialog ) ⌘;(Ctrl+Alt+Shift+S) : 프로젝트 구조를 확인 및 변경 할 수 있는 창을 엽니다. 해당 메뉴에서 Modules, Libraries, Facets, Artifacts, SDK,Project compiler output 등을 확인 및 변경 할 수 있습니다.(open Proje.. 2021. 12. 4. [SpringBoot] Spring 웹 개발 기초 - MVC 정적 컨텐츠 resources > static에 있는 파일명을 그대로 가져옴 동적 컨텐츠 MVC : Model / View / Controller 템플릿 엔진 : Html을 동적으로 만드는 역할 (Thymeleaf) Thymeleaf의 기능 중 파일을 우클릭해서 절대 경로를 가져올 수 있음 @GetMapping("hello-mvc") public String helloMvc(@RequestParam(value = "name", required = false) String name, Model model){ model.addAttribute("name",name); return "hello-template"; } 안녕하세요. 손님 API @GetMapping("hello-string") @ResponseB.. 2021. 12. 1. [SpringBoot] Spring Boot 맛보기 (2) - View & Build 웹 어플리케이션을 만든다면 가장 처음 만나는 웰컴 페이지 만들기! SRC > RESOURCES > STATIC(정적인 파일 경로)에 index.html을 만들고 서버를 켜면 웰컴페이지가 뜬다! 처음 실행될때 웰컴 페이지는 static content location에 있는 index.html을 먼저 찾는다고함 SpringBoot 공식 문서 : spring.io Thymeleaf 공식 문서 : https://www.thymeleaf.org/ 웹 어플리케이션의 첫번째 Controller 만들기! 먼저 Controller라는 패키지를 만들고 HelloController (java class)를 만든다 Controller에는 @Controller 어노테이션이 필수 package hello.hellospring.C.. 2021. 12. 1. 이전 1 2 다음