본문 바로가기

Project/Spring

(9)
Spring Scheduler 스케줄러 사용하려면 main이 있는 클래스에 @EnableScheduling 추가 @Scheduled 태그로 반복할 시간을 설정, 여기서 데이터베이스 처리도 가능
JWT(Json Web Token) JWTAuthenticationFilter는 하나의 필터가 아니라 많은 필터가 있음spring security architecture와 구조는 동일하나 앞의 AuthenticationFilter와 token을 spring security가 자동으로 해주는 것을 막고 내가 생성한 필터와 토큰으로 중간에 가로채서 사용한다. 토큰은 보안에 취약 -> 중간에 가로챌 수 있음, 따라서 만료시간을 줌 토큰은 2개가 같이 다님access token(만료시간 짧음)refresh token(만료시간 김)access token이 만료되면 access, refresh를 다시 만들어준다. front가 login요청, back에서 access, refresh token줌front가 user 정보를 필요로 할 때는 항상 acce..
React.js와 SpringBoot 연동하기 둘은 완전 다른 서버를 사용서로 다른 프로젝트가 2개 나오게 됨. 다른 서버를 사용하므로 버튼 클릭 시 비동기로 데이터를 전송함따라서 폼태그는 반드시 막아줘야 함e.preventDefault(); BackEnd(STS Tool)WebConfig에서 접속 허용해줌 view가 오지 않고 데이터로 옴(View 없음)@RestController 사용프론트에서 데이터가 오면 데이터베이스에 넣고 응답을 프론트로 전달해줌 벡앤드에서는 페이지를 아예 사용하지 않는다.-> 에러날 경우 프론트로 전달해서 프론트에서 알아서 처리하도록 해야한다.  FrontEnd(VSCode)터미널에서 설치npm install axios import axios from 'axios' post방식으로 벡앤드 경로를 설정해주고 데이터를 전송, ..
Spring Security 로그인 MVC패턴에서 Spring의 Tomcat, React.js는 다른 서버를 사용하므로 로그인과 관련된 정보를 백엔드가 전부 관리하기 불가능Spring Security와 Token으로 연결, Token으로 프론트와 백엔드가 정보를 주고받음 프로젝트 설정spring 프로젝트는 보통 jsp대신 프로젝트 기본 구조가 thymeleaf- jsp 사용해도 되긴 함- 기본 폴더 src/main/resources의 template에 thymeleaf 생성함 - 확장자 html타입 프로젝트 생성 시 Spring Security, thymeleaf 추가 프로젝트 실행하면 console에 패스워드가 나옴 로그인창 안 만들어도 spring security프로젝트에 포함하면 기본 로그인창 있음아이디 user 해당 패스워드 입력하..
JPA Query DSL 설정우선 @Test 어노테이션 주석처리하기Window>Show View>Gradle Tasks프로젝트 파일>build>build 우클릭 후 Run Gradle Tasks이후 프로젝트에서 Gradle> refresh Gradle project하면 build/generated/quertdsl 폴더 생성됨-> 안에 QEntity 자바 파일 생성됨 config생성할 객체들을 모아논 클래스 Repository모든 서비스가 공용으로 사용할 BankRepository 생성간단한 쿼리문(기본 CURD)은 save(insert), findBy(select) 등의 JPA Repository를 사용하고,복잡한 쿼리문(Join이 필요한 쿼리)은 DSL 문법을 사용한다. QEntityRepository가 QEntity를 바라보..
JPA Database mybatis 대신 jpa 사용 프로젝트 설정Spring Data JPA 추가 참고람다식을 사용하기 위한 패키지의 인터페이스(java.util.function 패키지의 인터페이스 포함)  application.properties미리 데이터베이스는 만들어놔야 함spring.jpa.hibernate.ddl-auto=create처음에만 테이블 생성, 이미 테이블이 있다면 drop후 생성함spring.jpa.hibernate.ddl-auto=update이후에는 update로 변경  Entityentity 패키지 기존의 dto 대신 사용mybatis는 mapper와 orm(데이터가 객체 단위) -> dto 사용 -> 테이블보다 많은 정보가 있기도 함(큼)jpa에서는 entity 자체가 테이블이면서 자바의 클래스이..
SpringBoot(Gradle) Spring Boot 특징어플리케이션마다 톰캣 서버가 내장되어 있음-> 폴더 경로가 어플리케이션마다 다르므로 경로 조심-> upload 경로는 절대 경로로 가지고 있어야 함-> context root 가 없음 -> 루트에 / 달아야 함 탐색기에서 내 workspace에 프로젝트 폴더를 넣은 후프로젝트 import할 때 gradle project로 가져와야함. 프로젝트 설정서버 내장이므로 서버와 서버폴더 삭제spring starter project로 새로 생성필요한 것 선택 후 생성(반드시 사용할 것만 추가) lombok -> getter setter 자동 추가(lombok.jar 다운로드 후 C:\ldy\sts-bundle\sts-3.9.18.RELEASE(STS.ini가 있는 곳) 여기에 설치해줘야 한..
Mini Project을 Spring Frame Work로 변경하기 Service, Dao, Dto는 다 있으므로 Controller만 바꾸면 됨 수정(10.11)MyController, RecruitController로 내 파트 변경 완료그 외 로그인/로그아웃과 연결에 필요한 부분도 변경-> 프로젝트 구조 MyController 중 일부하나의 servlet 파일이 하나 또는 2개(get, post)의 함수로 변경됨기존의 recruitApplyHire.java servlet 파일이 MyController의 함수로 변경 RecruitController 그 외에도 Service 파일도 형식에 맞게 수정파일입출력 cos, mysql, json, localdate 라이브러리 의존성 추가 GitHub 링크https://github.com/DDYDL/forus_springframe..