분류 전체보기 (84) 썸네일형 리스트형 AOP(Aspect Oriented Programming) AOP는 공통 관심사항과 핵심 관심사항을 분리하여 프로젝트를 원활하게 만들어줌 만약 프로젝트의 모든 메서드 호출 시간이 궁금하다면 각 메서드마다 시간 측정하는 로직을 추가해야한다 하지만 한 로직만 변경해서 모든 메서드에 적용할 수 있도록 도와주는게 aop @Component 등록하고 @Aspect 등록하고 @Around("execution(* 패키지 경로..*(..))") JPA로 DB(h2) 사용하기 1. build.gradle 파일에 jpa, h2 라이브러리 추가 추가하면 옆에 코끼리 버튼이 뜨는데 꼭 클릭해줘야한다 2. 스프링 부트에 JPA 설정 추가 맨 밑줄에 none인 이유는 미리 테이블을 생성해뒀기 때문! create으로 바꾸면 테이블을 직접 생성해줌 3. 엔티티 맵핑 Entity는? 데이터의 집합이다 위 처럼 member 테이블이 있으니 만들어놓은 Member class에 가서 엔티티 맵팽을 한다 @Entity @Id @ GenerateValue, GenerationType 모두jakarta.persistence로 임포트 plz 궁금한게 많은데 JPA를 제대로 안다뤄봐서 .. ㅠ 검색해보니 private Long id 위에 어노테이션은 기본키라서 저렇게 설정해놓은 것 같다 4. JPA 회원.. h2 설치 1. h2 설치 자신의 스프링버전과 맞는 버전을 설치해야함 https://www.h2database.com/html/download-archive.html Archive Downloads www.h2database.com 2. 실행(윈도우) 홈디렉토리에 test.mv 파일이 생기면 성공! 스프링 빈 등록 방법 2가지 1. 컴포넌트 스캔과 자동의존관계 설정 스프링 빈을 Controller -> Service -> repository 관계로 등록하려고 함 @Controller , @Service, @Repository는 스프링 컨테이너가 찾을 수 있게 컴포넌트를 등록하기 위한 어노테이션 @Component로 작성해도 됨. 위 사진을 보면 @Repository는 @Component를 가지고 있는 것을 알 수 있음 나머지도 동일 @AutoWired는 스프링 빈의 연관관계를 나타냄 생성자에 @AutoWired 표시를 하면 객체 생성할 때 해당 스프링 빈을 찾아서 주입할 수 있음! 컴포넌트의 스캔범위는 기본적으로는 메인 클래스가 있는 패키지에서 가능 2. 자바 코드로 직접 스프링 빈 등록 Controller는 위와 동일하게 @.. 예외처리 하나씩 습득할때마다 추가 예정 IllegalStateException - 객체 상태가 메서드 호출에 적절하지 않을때 @AfterEach - 테스트 케이스 클리어 하는 법 테스트 케이스를 돌릴 때 각 메서드들의 실행 순서가 보장 X, 이전 실행 결과가 남아 있으면 테스트 오류가 날 수 있다. 이때, @AfterEach를 사용해서 테스트 케이스를 클리어 해주자 @AfterEach는 각 테스트가 종료 될때마다 실행 됨 스프링으로 테스트 케이스 만들기 start.spring.io 가서 파일 만들고 IDE에서 열면 src 하위 폴더에 test가 있을 것! 테스트하려는 클래스명+Test로 똑같이 만들어 주면 된다 실행 예시 Member package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public String getName() { return name; } public void setId(Long id) { this.id = id; } public void setName(String name) { this.name = name; } } MemoryMemberRepository .. Optioinal Optional NPE가 발생하지 않도록 Null 값을 감싸는 것 인터페이스 https://limkydev.tistory.com/197 [JAVA] 자바 인터페이스란?(Interface)_이 글 하나로 박살내자 1. 인터페이스 개념과 역할 인터페이스....이 글하나로 박살내자. (회사에서 존댓말을 많이 쓰기때문에 여기서라도 반말로 글을 써보고 싶음 ㅎ) 인터페이스는 뭘까?? 결론부터 말하면, 극단적으 limkydev.tistory.com 보고 공부하기 .. 잠깐 읽어봤는데 설명이 기ㅣ깔남 ---------------------------------------------- 기능에 관련된걸 구현하는 듯 하다 웹 개발 static contents 말그대로 정적 콘텐츠다 스프링 부트 내 컨테이너에 해당 html의 컨트롤러가 있는 것이 아니라 html 파일을 resourse\static 파일에 넣어두면 그대로 반환해줌 mvc/템플릿 엔진 모델/뷰/컨트롤러와 템플릿 엔진 우선 컨트롤러를 작성해준다 뷰도 작성해준다 /helloMvc 로 가면 길어서 안보일수도 있지만 ㅠ 컨트롤러에 파라미터에 name이 없다고 말하는 중 @RequestParam이 name을 원하고 있음 그럼 이렇게 name에 지수라는 값을 넣어주면 된다! 이과정을 짧게 요약하면 우리가 ~~/helloMvc?name1=jisu요청 스프링 컨테이너가 helloMvc를 컨트롤러에서 찾아서 hello-template.html을 리턴값으로 반환 그때 ?name1 = J.. 이전 1 ··· 4 5 6 7 8 9 다음