본문 바로가기

반응형

Spring 공부

(9)
spring 프로젝트와 nuxt.js 연동 + mySql spring 프로젝트 application.properties 에 다음과 같이 해준다. 서버 포트는 8000로 설정mysql 디비 연결, 아이디 , 비밀번호, 스키마 적어주기 server.port=8000# jpa commonspring.jpa.show-sql=truespring.jpa.hibernate.ddl-auto=updatespring.jpa.generate-ddl=true# jpa mysqlspring.jpa.database=mysqlspring.datasource.url=jdbc:mysql://localhost:3306/dsil?useUnicode=true&serverTimezone=Asia/Seoulspring.datasource.driver-class-name=com.mysql.cj.jdb..
spring - 블로그 예제 domain, dto, controller domain: Article  @EntityListeners(AuditingEntityListener.class)@Entity@Getter // 필드값 가져오기 lombok에 있음 getter 필요 없음@NoArgsConstructor(access = AccessLevel.PROTECTED) // 접근제어자가 prtected인 기본생성자 별도 코드없이 생성 // 생성자 필요없단말 @EntityListeners(AuditingEntityListener.class): 이 어노테이션은 엔티티의 변경을 감지하고 자동으로 관리하는 JPA의 기능을 활성화한다. AuditingEntityListener 클래스는 엔티티의 생성 및 수정 날짜를 자동으로 관리하는데 사용된다. @Entity: 이 어노테이션은 해당 클래스가..
spring - 블로그 예제 service, repository, viewContoroller, templates Controller: BlogService@RequiredArgsConstructor // final 이 붙거나 @NotNull이 붙은 필드의 생성자 추가@Service @RequiredArgsConstructor는 Lombok에서 제공하는 어노테이션으로, 클래스의 필드 중 final로 선언된 필드나 @NotNull 어노테이션이 붙은 필드들을 대상으로한 생성자를 자동으로 생성한다. 이 생성자를 통해 객체를 생성할 때 해당 필드들의 값이 필요하다. @Service는 Spring Framework에서 사용되는 어노테이션으로, 해당 클래스가 서비스 역할을 한다는 것을 나타낸다. Spring 컨테이너에 의해 관리되며, 주로 비즈니스 로직을 담당하는 클래스에 사용된다. private final BlogRepos..
spring 공부 - 앤티티, ORM, JPA, 스프링데이터 JPA 데이터베이스 데이터를 매우 효율적으로 보관하고 꺼내볼 수 있는 곳 DBMS 데이터베이스를 관리하기 위한 소프트웨어 database management system데이터베이스는 많은 사람이 공유할 수 있어야 하므로 동시 접근할 수 있어야한다. 관계형 DBMS 관계형데 모델 기반테이블 형태로 이루어진 데이터 저장소 ORM object-relational mapping 자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법ORM이 있다면 데이터베이스의 값을 마치 객체처럼 사용할 수 있다.자바 언어로만 데이터베이스에 접근해서 원하는 데이터 받아올 수 있다.자바 언어로만 데이터베이스 다룰 수 있게 하는 도구 장점:SQL 직접 작성하지 않음객체지향적 코드 작성할 수 있기 때문에 비즈니스 로직에만 집중데이터베이스 시스..
spring 공부 - 테스트코드 테스트코드 작성한 코드가 의도대로 잘 동작하고 예상치 못한 문제가 없는지 확인할 목적으로 작성하는 코드 given-when-then 패턴 테스트 코드를 세 단계로 구분해 작성하는 방식 given : 테스트 실행을 준비하는 단계when : 테스트를 진행하는 단계then : 테스트 결과를 검증하는 단계 @DisplayName("새로운 메뉴를 저장한다.")@Testpublic void saveMenuTest(){ // given : 메뉴를 저장하기 위한 준비 과정 final String name = "아메리카노"; final int price = 2000; final Menu americano = new Menu(name, price); // when : 실제로 메뉴를 저장..
spring 공부 - 스프링부트, 계층 스프링부트 스프링은 장점이 많은 개발 도구지만 설정이 매우 복잡함개발자가 조금 더 비즈니스 로직 개발에만 집중할 수 있도록 만들어주는 도구톰캣, 제티, 언더토우 같은 웹 애플리케이션 서버 was 가 내장되어 있다.빌드 구성 단순화하는 스프링 부트 스타터 제공XML 설정 없이 자바 코드로 작성 가능JAR 이용해서 자바 옵션만으로 배포 가능애플리케이션 모니터링 및 관리 도구인 spring actuator 제공 IoC (Inversion of Control) 제어의 역전외부에서 관리하는 객체를 가져와 사용한다. public class A { private B b;} DI (Dependency Injection) 의존성 주입, 제어의 역전을 구현하기 위해 사용하는 방법어떤 클래스가 다른 클래스에 의존한다는 뜻@..
spring 공부 - JPA, AOP 회원가입기능 html 이름 등록   controllerpostMapping 어노테이션return / 페이지 @PostMapping("/members/new") // PostMapping public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; // redirect / 로 이동 } 회원출력 기능 html회원 목록 for each 처럼 꺼내서 하나씩 출력  ..
spring 공부 - 컴포넌트 스캔, 빈 등록 TEST 개별적으로 실행할 수 있음alt + insert 하면 자동생성assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.");첫번째와 두번째 주소를비교한 후 같으면 진행 틀리면 알림 package hello.hellospring.service;import hello.hellospring.domain.Member;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;import hello.hellospring.domain.Member;import hello.hellospring.repository.Me..

반응형