스프링 347

17강. spring 종합 테스트

@SpringBootTest // spring 환경까지 포함해서 테스트. @Transactional //이거는 @Test 함수 끝낸 후 날린 DB 쿼리를 롤백 class MemberServiceIntegrationTest { @Autowired MemberService memberService; //내가 테스트 하는 것 이므로 테스트는 편한 방법으로. @Autowired MemberRepository memberRepository; @Test void 회원가입() { //테스트때는 한국인 기업이면 한글로도 쓴다고 함. //given 주어진 상황 Member member = new Member(); member.setName("hello2"); //when 실행했을 때, 검증 Long saveId = me..

16강. 순수 JDBC

옛날에 쓰던 방식. build.gradle에 라이브러리를 추가 해야 함. implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' spring.datasource.username=sa implementation 'org.springframework.boot:spring-boot-starter-jdbc' 기본적으로 java에서 db 쓸려면 저게 필요함. runtimeOnly 'com.h2database:h2' h2 db를 쓴다. 저거 해주고 gradle 새로고침 해줘야 적용됨. 아마 저 정보보고 웹에서 다운로드? 인듯. spring.datasource.username=sa 이것도 써야 함..

15강. H2 DB

H2는 되게 가볍다고 한다. 일단 설치. (1.4.2.0) 연결 누르면 홈 디렉토리에 test.mv.db 라고 생김 그 뒤부터는 jdbc:h2:tcp://localhost/~/test 이걸로 접속해야 소켓 통해서 접속할 수 있음. 웹콘솔이랑 어플리케이션이랑 충돌날 수 있어서 이걸로 해야 함. 기본적인 member 테이블 생성 create table member ( id bigint generated by default as identity, name varchar(255), primary key(id) ); bigint : long generated by default as identity : null로 왔을 때 자동증가 인듯? 보통 이런거 어떤 커맨드 했는지 관리 해 두기도 함. 프로젝트 최상위에 sq..

14강. 간단한 웹 기능 -조회

@GetMapping("/members") public String list(Model model){ List members = memberService.findMembers(); model.addAttribute("members",members); //스프링에서 값은 Model을 통해 넘김. //model에 addAttribute로 키와 함께 값을 추가해주면, 그게 //자동으로 같이 넘어가는 듯. return "members/memberList"; // return으로 간 경로는 Mapping을 안 거치고 템플릿으로 찾는 듯? } # 이름 th는 thymeleap고, th:each는 thymeleap의 문법, 반복문인데, "member:${members}" members에서 member로 반복. 그러니..

13강. 간단 회원 웹 기능 -등록

@Controller public class HomeController { @GetMapping("/") //최상위에서 호출. localhost:8080 바로 가면 이거 호출 public String home(){ return "home"; } } @Controller 여러개 등록 가능. 파일도 다른거임. Hello 회원 기능 회원 가입 회원 목록 home은 그냥 링크만 있는 간단한. thymeleaf는 써놓긴 했는데 쓰진 않은듯? @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { t..

12장. 스프링 빈 등록. 자바 코드로 직접

먼저 기존 자동 연결은 한번 지워봄. public class MemberService { //Ctrl + Shift + T 테스트 바로 만들기. private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository){ this.memberRepository = memberRepository; } } public class MemoryMemberRepository implements MemberRepository{ } 컨트롤러는 그대로 둬야 함. 컨트롤러를 통해 최초로 연결되서 그러는 듯. @Controller public class MemberController { private final..

11장 스프링 빈 등록. 자동 의존관계 설정

스프링 빈 등록 방법 1. 자동 2. 직접 자바 코드로 이번에 배울 건 자동 스프링 뜰 때 맨처음 스프링 컨테이너가 생성된다. 그 때, @Controller public class MemberController { } 이런 식으로 @Controller가 있으면 이 객체를 생성해서 컨테이너에 넣어둔다.(싱글톤으로, 물론 싱글톤 아니게도 할 수 있음.) 그리고 스프링이 관리 함. @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data", "hello!!"); return "hello"; } 과거 이것도 스프링에서 컨테이너에 빈으로써 등록되어 접근..

10장 회원 서비스 테스트

class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach //코드 하기 전에 실행. public void beforeEach(){ memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach //테스트 중 한 함수가 끝날 때 마다 이거 실행. public void afterEach(){ memberRepository.clearStore(); } @Test void 회원가입() { //테스트때는 한국인 기업이면 한글로도 쓴다고 함..

9장 회원관리 서비스 구현

G:\spring\hello-spring\src\main\java\hello\hellospring\service\MemberService.java public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); //회원가입 public Long join(Member member){ //id는 임시로 반환하게 한 듯. //같은 이름일 시 중복회원 X validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Mem..

8강 회원관리 예제 테스트

main을 통해 실행하기에는 테스트하려는 것에 비해 너무 무거움. JUnit이라는 프레임워크로 손쉽게 테스트 먼저 test폴더에 G:\spring\hello-spring\src\test\java\hello\hellospring\repository\MemoryMemberRepositoryTest.java 보통 관례가 테스트할거 + Test가 클래스명임. public class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach //테스트 중 한 함수가 끝날 때 마다 이거 실행. public void afterEach(){ repository.clearStore(); } ..