Spring 15

스프링데이터 JPA (JpaRepository)

스프링 데이터 JPA - 스프링 데이터 JPA는 JPA를 보다 더 편리하게 사용하도록 도와주는 기술이다. - 개발자가 데이터 액세스 계층을 구현하는데 필요한 많은 반복적인 코드를 줄이고, 간단한 설정을 통해 데이터베이스와의 상호 작용을 가능하게 하는 것입니다. - JpaRepository와 같은 인터페이스를 사용하여 기본적인 CRUD(Create, Read, Update, Delete) 기능을 제공받을 수 있습니다 - Spring Data JPA는 JPA를 사용하여 데이터베이스와 상호 작용하는데 도움을 주는 스프링 프레임워크의 일부입니다. JpaRepository - JpaRepository는 Spring Data JPA에서 제공하는 인터페이스로, 기본적인 CRUD(Create, Read, Update,..

Spring 2023.11.30

스프링부트 jpa 라이브러리 추가 및 연결(인텔리제이)

먼저 build.gradle 파일에 jpa,h2 데이터베이스 관련 라이브러리를 추가해준다. 그리고 application.properties에 두줄도 추가해준다. - show-sql : JPA가 생성하는 SQL을 출력한다. - ddl-auto : JPA는 테이블을 자동으로 생성하는기능을 제공하는데 none을 사용하면 해당기능을 끈다. create 를 사용하면 엔티티 정보를 바탕으로 테이블도 직접 생성해준다. 그러고 나서 Gradle에 새로고침 모양을 눌러줘서 라이브러리를 다운받으면 된다. JPA를 사용하도록 스프링 설정도 변경해주자 SpringConfig 클래스에 가서 EntityManager를 추가해준다. - EntityManager는 Java Persistence API (JPA)의 일부로서, 데이터베..

Spring 2023.11.29

빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정 - 생성자에 @Autowired 가있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입 이라고 한다. * 컴포넌트스캔 원리 - @Component 애노테이션이 있으면 스프링 빈으로 자동 등록된다. - @Controller 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트스캔 때문이다. -> 컨트롤러에 들어가서 보면 @Component 애노테이션이 있는 것을 확인할 수 있다. - @Component 를포함하는다음 애노테이션도스프링 빈으로 자동등록된다. 1) @Controller 2) @Service 3) @Repository 자바 코드로 직접 스프링..

Spring 2023.11.25

테스트코드

JUnit - JUnit은 Java에서 단위 테스트를 작성하고 실행하기 위한 표준 테스팅 프레임워크입니다. - 단위 테스트는 소프트웨어의 각 부분이 의도한 대로 작동하는지 확인하는 데 사용됩니다. JUnit은 개발자들이 코드의 품질을 유지하고 소프트웨어를 더 신뢰성 있게 만들 수 있도록 도와줍니다. - JUnit은 자바 생태계에서 테스트 주도 개발(Test-Driven Development, TDD) 및 테스트 작성을 촉진하는 데 널리 사용되는 프레임워크 중 하나입니다. @Test - @Test 애너테이션은 테스트 메서드를 정의할 때 사용됩니다. 해당 애너테이션이 붙은 메서드는 JUnit이 테스트 수행 중에 호출하게 됩니다. -> 위의 코드에서 testAddition 메서드는 @Test 애너테이션이 붙어..

Spring 2023.11.21

스프링부트 @ResponseBody

- @ResponseBody를 사용하고 객체를 반환하면 객체가 JSON으로 변환 됨 - viewResolver 대신에 HttpMessageConverter 가 동작한다. - 문자의 처리는 StringHttpMessageConverter가 하고, 객체의 처리 MappingJackson2HttpMessageConverter가 하게 된다. - JSON으로 변환해주는 라이브러리는 GSON과 Jackson 라이브러리가 존재하는데, 스프링은 기본적으로 Jackson라이브러리를 탑재하고 있다.

Spring 2023.11.21

스프링부트 인텔리제이 빌드 오류해결

cmd에서 빌드가 안되는 오류 발생 Java 버전이 맞지 않았다. 인텔리제이에서는 전부 다 17버전으로 맞춰줬지만 Java 환경변수 설정은 아직 11버전으로 되어있었기 때문 윈도우 실행창에 [고급 시스템 설정 보기] -> [환경 변수] JAVA-HOME 부분 더블클릭하고 들어가서 17버전으로 변경 Path 더블클릭 -> JAVA-HOME 가장 최상단으로 올리기 -> 확인 프로젝트 있는 위치가서 cmd 실행하고 -> gradlew -> gradlew.bat -> gradlew build 그러면 build 폴더가 생성이 되는데 build 폴더 안에 libs 클릭 그 위치에서 cmd 실행 -> java -jar hello-spring-0.0.1-SNAPSHOT.jar 실행 빌드 완료

Spring 2023.11.21

스프링부트 & 인텔리제이 환경설정

먼저 https://start.spring.io 여기로 들어가서 세팅을 해준다. 들어가면 이런 화면이 뜰건데 Gradle-Grooby 선택해주면 되고 언어는 Java 밑에는 스프링부트 버전을 선택해주면 된다. Group과 Artifact 부분에는 그냥 하고싶은 이름 써주면 된다. 그리고 Java 17버전을 사용할거기 때문에 체크해준다. Dependency 부분에서는 ADD로 Spring Web과 Thymeleaf를 추가해 주도록 한다. -> Generate 이제 생성한 프로젝트를 압축을 풀어주고 인텔리제이에서 프로젝트를 오픈한다. 인텔리제이에서도 설정해줄게 있는데 단축키로 Ctrl + Alt + Shift + s 누르면 나오는 설정창이 있다. 여기서 17버전으로 설정 이제 Gradle JDK 설정도 해준..

Spring 2023.11.20

Spring 파이널 알림함

유저가 자유게시판에 있는 다른 유저의 글에 댓글을 작성하면 실시간으로 위에 알림창의 숫자가 늘어나게 하고 싶었고 알림 내용을 띄우게 하고 싶었다. 일단 로그인 했을때만 알람 갯수를 조회하는 비동기 함수를 호출한다. let alertSock; alertSock = new SockJS("/alertSock") alertSock.onmessage = e => { var alertList = JSON.parse(e.data); console.log(alertList.length); alarmNum.innerHTML = alertList.length; selectAlarm(alertList) } 그리고 서버랑 실시간으로 양방향 통신을 가능하게 해주는 SockJS 라는 JavaScript 라이브러리를 사용해서 "/..

Spring 2023.10.16