프로그래밍/Java 57

spring boot 이용한 JWT 로그인 로그아웃 토큰 유효성 검사

Spring Boot3.1 과  JWT를 이용하여 로그인 / 로그아웃 / 토큰 생성 / 토큰 검증 기능을 간다하게 구현해 봅니다.프로젝트 구성src/main/java/com/example/jwtapp/ ├── controller/AuthController.java ├── filter/JwtFilter.java ├── model/AuthRequest.java ├── model/AuthResponse.java ├── model/LogoutRequest.java ├── security/JwtUtil.java ├── security/SecurityConfig.java ├── service/TokenBlacklistService.java └── JwtAppAppli..

전문 mymq 릴레이소켓 연결시 이슈

이슈input 값 정상적으로 셋팅후 network > ws  에서 올리는것만 나오고 응답은 안받음다시 보내면 그 다음 응답 받음.그런데 그 후에 이상한 값이 계속 무한대로 떨어짐 해결맨앞 4바이트의 값이 잘못됬음정상 0000014931334331202020202020202020202020646f6d202020202057363131325330312020202020202020202020202020202020202020202020202020202020203030302e3030302e3030302e303030203030302e3030302e3030302e3030302030302d30302d30302d30302d30302d303020202053303138323835202020202020202020574820202..

스프링에서 빈(Bean)을 등록하는 두가지 방법

1. 어노테이션 기반 빈 등록스프링이 제공하는 특정 어노테이션을 클래스에 선언하여 빈으로 등록하는 방식입니다.대표적인 어노테이션:@Component: 일반적인 컴포넌트로 빈 등록.@Controller: MVC 패턴에서 컨트롤러 역할을 하는 클래스에 사용.@Service: 비즈니스 로직을 처리하는 서비스 레이어 클래스에 사용.@Repository: 데이터 접근을 담당하는 DAO 클래스에 사용.어노테이션 사용 시 스프링이 **컴포넌트 스캔(Component Scan)**을 통해 해당 클래스를 찾아 빈으로 등록합니다.예제@Componentpublic class MyComponent { public void doSomething() { System.out.println("Component 실행..

vscode 에서 devtools 정상적으로 작동하지 않을때(자동리로드 안될때)

처음엔 자동 리로드 잘 되다가 갑자기 안되고 여러가지 설정을 셋팅해도 안될때확장팩에 문제가 있는 듯.... build.gradleplugins { id 'java' id 'war' id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.1.6'}group = 'com.coforward'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}configurations { compileOnly { extendsFrom annotationProcessor }}repositories { m..

[vscode] java17 + springboot3.1 + mysql8 + mybatis3.0 + themleaf

오랜만에 java 프로젝트 생성해봅니다.이번엔 intelliJ IDEA 대신 vscode 로 셋팅해 봅니다.Mysql 테이블 생성 및 데이터 insertCREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL);INSERT INTO users (name, email) VALUES('John Doe', 'john.doe@example.com'),('Jane Smith', 'jane.smith@example.com'),('Mike Johnson', 'mike.johnson@example.com'),('Emily Brown', 'emily.brown@e..

인텔리제이 2020.3 에서 java 17 -> java 11 spring boot 3 -> 2

인텔리제이 2020.3 에서는 java 17  작동이 안된다.java17 사용하려면 인텔리제이 버전을 높여야 한다. 그렇지 않으면 java 11로 낮추어야 하는데 스프링 부트 3은 java 17 부터 지원하기 때문에스프링 부트를 2로 내리는 방법을 알리고자 한다. 1. project SDK 는 java 11 로 한다.Java version 17 21 22 만 나온다.일단 17 로 하자2. 프로젝트 완료된 후 pom.xml 에서 스프링 부트 버전을 2버전으로 변경한다.3. 톰캣 시작후 정상적으로 안되면 아래 restart 한다.

[spring boot JPA] object references an unsaved transient instance - save the transient instance before flushing 오류 원인

"object references an unsaved transient instance - save the transient instance before flushing" 오류는 Hibernate 또는 JPA에서 발생하는 오류로, 영속성 컨텍스트에 저장되지 않은(transient) 엔티티를 다른 엔티티가 참조하고 있을 때 발생합니다. 이 경우, 영속성 컨텍스트는 참조한 엔티티를 올바르게 관리하지 못하므로 오류가 발생합니다. 이 오류를 해결하기 위해 다음을 확인하십시오: 연관 엔티티 저장: 먼저 연관 엔티티(Team)를 저장한 후, 메인 엔티티(Members)에 연관 엔티티를 설정하세요. 영속성 컨텍스트는 참조된 엔티티가 영속 상태로 저장되어 있어야 합니다. 원본 Members members = new M..

spring boot 와 JPA + mysql 사용한 두개 테이블 조인 Insert

프로젝트 구조 build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath "gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:1.0.10" } } plugins { id 'java' id 'war' id 'org.springframework.boot' version '2.7.14' id 'io.spring.dependency-management' version '1.1.2' id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' // Querydsl 플러그인 추가 } group = 'com.naya' version = '0..