inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

타임리프 > jsp

미해결

스프링 부트 웹 개발 입문 - 따라하며 배우기

잘 로드가 되다가 갑자기 Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-10-09 14:33:58.683 ERROR 21648 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed 이 에러가 뜹니다... 올려주신 걸 복붙했는데도 이러는데 왜 이럴까요?

  • spring
  • mvc
  • spring-boot
mins199600 댓글 1 좋아요 0 조회수 166

Package 구성

해결됨

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

domain안에 따로 repository를 만든 이유가 있나요?

  • mysql
  • spring-boot
  • jpa
  • jwt
  • websocket
조은형 댓글 2 좋아요 0 조회수 183

~에 대해(서로 다른 인스턴스)

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 섹션4 회원 서비스 테스트 강의 13:13즈음에서 설명하신 내용에 대해 질문 드리려고 합니다. 강사님께서는 MemberService에 있는 memberRepository와 MemberServiceTest에 있는 memberRepository가 서로 다른 객체여서 애매하다고 설명해주셨습니다. 두 클래스 모두 new로 새로 생성해줘서 서로 다른 객체인건 이해가 갑니다. 하지만 Test에서 확인하려는건 작성한 코드가 제대로 돌아가는지 확인하기 위함이므로 서로 다른 객체이긴 하지만 동일한 메서드를 이용하므로 Test차원에서는 상관없다고 생각되어 질문드려봅니다! 감사합니다~

  • java
  • spring
  • mvc
  • spring-boot
냐암2 댓글 2 좋아요 0 조회수 194

리액트 코드 스플리팅

미해결

코드로 배우는 React 19 with 스프링부트 API서버

맨 처음 리액트 코드스플리팅 에서 막히는데요,,,ㅠㅠ 강의 내용이랑 똑같이 했는데 막히는데 한번봐주실수있으실까요?? 그리고 코드를 작성하고 리액트화면을 그냥 새로고침하면 코드가적용이되는게 맞죠? 제가하면 지금 mainPage div만 나오고 나머지는 나오지않아서요 import { Suspense, lazy } from "react"; import { createBrowserRouter } from "react-router-dom"; // require 대신 import로 수정 const Loading = <div>Loading...</div>; const Main = lazy(() => import("../pages/mainPage")); // lazy 게으르다 -> 코드 스플리팅 const About = lazy(() => import("../pages/about")); // lazy 게으르다 -> 코드 스플리팅 const root = createBrowserRouter([ { path: '', element: <Suspense fallback={Loading}><Main /></Suspense> }, { path: 'about', element: <Suspense fallback={Loading}><About /></Suspense> } ]); export default root; import React from 'react' import { Link } from 'react-router-dom' const mainPage = () => { return ( <div className = 'text-3xl'> <div className={'flex'}> <Link to ={'/about'}>About</Link> </div> <div>mainPage</div> </div> ) } export default mainPage import React from 'react' import { Link } from 'react-router-dom' const about = () => { return ( <div className={'text-3xl'}> <div className={'flex'}> <Link to ={'/about'}>About</Link> </div> <div>About page</div> </div> ) } export default about import React from 'react' import { RouterProvider } from 'react-router-dom' import root from './router/root' const App = () => { return ( <RouterProvider router={root} /> ) } export default App

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
김우철 댓글 3 좋아요 0 조회수 272

'추가 - 코프링과 플러그인' 강의 7:46 allopen 관련 질문

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

우선 완강을 앞두고 있는데 추가 강의가 정말 흥미롭고 재밌었습니다. 감사합니다! 질문으로 넘어가자면.. [질문1 - 강의 중 allopen 플러그인 사용 여부] 강의를 듣는 와중에 7:30초쯤 말씀에는 사용했다고 하셨지만 제가 강의를 따라가면 작성해온 프로젝트 코드 내에서는 allopen관련 plugin이 build.gradle에 없었습니다. 혹시나 해서 강의 초반 자료로 주셨던 library-app-complete.zip 파일 내 build.gradle을 열어보았지만 안적혀 있었고 혹시 자동으로 연관된 dependency가 설치되었나 싶었지만 allopen을 검색해보았을때 찾기 못했습니다. 해당 플러그인이 사용안했던 것이 맞는지 궁금합니다! [질문2 - allopen 플러그인이 없어도 되었던 이유] 이게 없어도 프로젝트가 잘 작동한 이유가 Entity 클래스는 org.jetbrains.kotlin.plugin.spring 플러그인이 open 시켜주고 MappedSuperclass나 Embeddable 클래스는 강의 중 사용한 적이 없었기 때문에 몰랐다고 보는게 맞는건지도 궁금합니다! [강의 중 나온 allopen 플러그인 적용 코드 예시] id 'org.jetbrains.kotlin.plugin.allopen' version '1.6.21' allOpen { annotation("javax.persistence.Entity") annotation("javax.persistence.MappedSuperclass") annotation("javax.persistence.Embeddable") }

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
이동기 댓글 1 좋아요 2 조회수 218

ExperienceRepositoryTest 실행 오류

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

++++ 테스트파일에서 오타가 난 줄 알았는데 레포지토리 파일 모두 오타가 나있었네요!! 감사합니다!

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
ailen22 댓글 2 좋아요 0 조회수 188

java -jar 버전 문제

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 위와 같은 에러가 뜹니다. 프로그램에서 java 11이나 jdk 11 버전은 모두 삭제되어 있습니다. (choco uninstall openjdk11 명령어 실행 시 openjdk11이 uninstall 되어있다는 fail이 뜸) 환경변수도 모두 17버전으로 맞춰놓은 상태입니다. ./gradlew build까지는 됐는데 java -jar 했을 때 오류가 납니다.

  • java
  • spring
  • mvc
  • spring-boot
정수진 댓글 3 좋아요 0 조회수 448

projectRepository assertion 오류 질문입니다.

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

projectRepositoryTest.kt 파일을 아래와 같이 작성했는데 assertion 오류가 나서 원인을 모르겠어서 해당 파일 코드 첨부합니다. 94줄과 111줄 오류인 걸로 보아 skills를 assert할 때 뭐가 잘못된 것 같은데 어떻게 고쳐야 하는지 잘 모르겠습니다..! package com.yewon.portfolio.domain.repository import com.yewon.portfolio.domain.constant.SkillType import com.yewon.portfolio.domain.entity.Project import com.yewon.portfolio.domain.entity.ProjectDetail import com.yewon.portfolio.domain.entity.ProjectSkill import com.yewon.portfolio.domain.entity.Skill import org.assertj.core.api.Assertions import org.assertj.core.api.Assertions.* //import com.yewon.portfolio.domain.entity.* //import org.assertj.core.api.Assertions.* import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest @DataJpaTest @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ProjectRepositoryTest( @Autowired val projectRepository: ProjectRepository, @Autowired val skillRepository: SkillRepository ) { val DATA_SIZE = 10 private fun createProject(n: Int): Project { val project = Project( name = "${n}", description = "테스트 설명 {n}", startYear = 2023, startMonth = 9, endYear = 2023, endMonth = 9, isActive = true ) val details = mutableListOf<ProjectDetail>() for (i in 1..n) { val projectDetail = ProjectDetail(content = "테스트 ${i}", url = null, isActive = true) details.add(projectDetail) } project.addDetails(details) val skills = skillRepository.findAll() val skillsUsedInProject = skills.subList(0, n) for (skill in skillsUsedInProject) { val projectSkill = ProjectSkill(project = project, skill = skill) project.skills.add(projectSkill) } return project } @BeforeAll fun beforeAll() { println("----- 스킬 데이터 초기화 시작 -----") val skills = mutableListOf<Skill>() for (i in 1..DATA_SIZE) { val skillTypes = SkillType.values() val skill = Skill(name = "테스트 ${i}", type = skillTypes[i%skillTypes.size].name, isActive = true) skills.add(skill) } skillRepository.saveAll(skills) println("----- 스킬 데이터 초기화 종료 -----") // println("----- 데이터 초기화 이전 조회 시작 -----") // val beforeInsert = projectRepository.findAll() // assertThat(beforeInsert).hasSize(0) // println("----- 데이터 초기화 이전 조회 종료 -----") println("----- 테스트 데이터 초기화 시작 -----") val projects = mutableListOf<Project>() for (i in 1..DATA_SIZE) { val project = createProject(i) projects.add(project) } projectRepository.saveAll(projects) println("----- 테스트 데이터 초기화 종료 -----") } @Test fun testFindAll() { println("----- findAll 테스트 시작 -----") val projects = projectRepository.findAll() assertThat(projects).hasSize(DATA_SIZE) println("projects.size: ${projects.size}") for (project in projects) { assertThat(project.details).hasSize(project.name.toInt()) println("project.details.size: ${project.details.size}") assertThat(project.skills).hasSize(project.name.toInt()) println("project.skills.size: ${project.skills.size}") } println("----- findAll 테스트 종료 -----") } @Test fun testFindAllByIsActive() { println("----- findAllByIsActive 테스트 시작 -----") val projects = projectRepository.findAllByIsActive(true) assertThat(projects).hasSize(DATA_SIZE) println("projects.size: ${projects.size}") for (project in projects) { assertThat(project.details).hasSize(project.name.toInt()) println("project.details.size: ${project.details.size}") assertThat(project.skills).hasSize(project.name.toInt()) println("project.skills.size: ${project.skills.size}") } println("----- findAllByIsActive 테스트 종료 -----") } }

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
w3w 댓글 1 좋아요 0 조회수 226

API 구축시 인텔리제이

미해결

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 이제 시작해보려구하는데 ㅎㅎ API 구축시 인텔리제이 사용해도 문제없나요??

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
김우철 댓글 2 좋아요 0 조회수 134

JdbcMemberRepository implements와 findAll() @Override 오류

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] JdbcMemberRepository클래스를 만들고 코드를 복붙했으며, 대부분 오류나는 부분은 모두 import해서 없어졌지만, 해결되지 않은 부분이 2군데 있었습니다. java: hello.hello_spring.repository.JdbcMemberRepository is not abstract and does not override abstract method findAlL() in hello.hello_spring.repository.MemberRepository java: method does not override or implement a method from a supertype 12줄에 public class JdbcMemberRepository implements MemberRepository { 이 부분에서 빨간줄이 계속 표시되고, 71줄에 findAll()메소드에서 바로 상단에 @Override에 빨간줄이 뜹니다. 어떤 방식을 적용하든 계속 오류가 해결되지 않은데 어떻게 해야 좋을지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 257

테스트코드 실행중 오류와 경고에 관한 질문 입니다.

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

현재 강의는 ExperienceRepository코드를 테스트하는 코드인데 interface HttpInterfaceRepository : JpaRepository<HttpInterface, Long>{ fun countAllByCreatedDateTimeBetween(start: LocalDateTime, end: LocalDateTime): Long } 제가 이런식으로 HttpInterfaceRepoistory에 사용자 정의 메서드이름을 잘못 설정했어서 테스트 코드 실행중에 오류가 발생하여 이런식으로 실행이 안되었습니다. HttpInterfaceRepository와 관려 없는 코드 같은데 왜 오류가 발생하는 건가요? 그리고 저 오류를 발견해서 HttpInterfaceRepository 를 수정하고 실행을 하니 정상적으로 실행은 되었는데 이 경고가 뜹니다 이건 어떤건가요? 프로젝트 리포지토리 테스트가 계속 실패하는데 왜 그런건가요? https://drive.google.com/file/d/1s2JngsdGhN_iOUf6llkkcUwwISIuCTUp/view?usp=sharing 구글 드라이브에 소스코드 압축해서 업로드 했습니다

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
양치잘하기 댓글 2 좋아요 0 조회수 292

localhost:8080 Whitelabel Error Page... 어떻게 해야 될까요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아무리 찾아봐도 잘 안되네요 ㅜㅜ... 도대체 뭐가 문제일까요..ㅜㅜ [질문 내용] 여기에 질문 내용을 남겨주세요.

  • java
  • spring
  • mvc
  • spring-boot
딩띵 댓글 4 좋아요 0 조회수 600

MemberController안에 static class MemberForm을 만들어도 상관없나요?

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 회원 등록을 위해 데이터를 전달 받을 객체를 위한 컨트롤러로 MemberForm클래스를 따로 만들지 않고 MemberContorller안에서 static class MemberForm클래스로 만들어도 상관없나요? @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); System.out.println("member = " + member.getName()); memberService.join(member); return "redirect:/"; } static class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 1 좋아요 0 조회수 321

MemberController가 아닌 MemberForm을 만든 이유

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 회원을 등록하기 위해 데이터를 전달 받을 컨트롤러를 만드는데 왜 MemberController에서 객체를 정의하지 않고 따로 MemberForm이라는 컨트롤러 안에서 객체를 만드는 건지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 278

apigateway 프로젝트 생성하고 실행시 Timout이출력 됩니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강사님, 강의 영상 잘 보고 있습니다. first-service, second-service 둘다 실행 후에 apigateway-service 실행했습니다. 그런데 apigateway 쪽에서 연결 거부 당했다는 로그가 지속적으로 올라오네요 이유를 모르겠습니다. apigateway 의 application yml파일 여기서 궁금한게 defaultZone 설정 해서, discoveryservice 프로젝트도 구동 시켜줬는데, 같은 에러로그가 지속 적으로 올라오네요.. server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service uri: localhost:8081/first-service predicates: # ??? Path ??? first-service?? ?? uri? ?? - Path=/first-service/** - id: second-service uri: localhost:8082/second-service predicates: # ??? Path ??? second-service?? ?? uri? ?? - Path=/second-service/** 콘솔 내용 2024-10-07 20:39:53.214 WARN 2024 --- [OvbxrBtUd7XQ-87] o.s.a.r.l.SimpleMessageListenerContainer : Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: no further information 2024-10-07 20:39:53.214 INFO 2024 --- [OvbxrBtUd7XQ-87] o.s.a.r.l.SimpleMessageListenerContainer : Restarting Consumer@4dca89d2: tags=[[]], channel=null, acknowledgeMode=AUTO local queue size=0 2024-10-07 20:39:53.215 INFO 2024 --- [OvbxrBtUd7XQ-88] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [localhost:5672] 추가 예외 2024-10-07 20:51:37.290 INFO 18012 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888 2024-10-07 20:51:37.304 INFO 18012 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available 2024-10-07 20:51:37.304 WARN 18012 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/apigateway-service/default": Connection refused: no further information; nested exception is java.net.ConnectException: Connection refused: no further information

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
Agrev 댓글 2 좋아요 0 조회수 264

Dip, @transactional

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

안녕하세요! 강의를 듣고, 궁금증이 생겨서 찾아보던 중 명확한 답을 얻지 못해서 질문드립니다!. 첫째로 DIP에 관련된 질문입니다. 회원가입과 비밀번호 암호화 강의 중 "DTO를 서비스 계층으로 바로 넘기는 게 좋지 않다"고 하셔서 궁금증을 가지고 찾아보던 중에 이 질문 을 보고 관련 내용들을 찾아봤지만, 궁금증을 완전히 해결하지 못해서 질문드립니다. public class Auth ControllerAuthController { private final Auth ServiceAuthService auth ServiceauthService; private final ?AppConfig ?appConfig; @Post MappingPostMapping("/APIapi/auth/signup") public void signup(@Request BodyRequestBody Signup signup) { auth ServiceauthService. signup(signup).signup(signup); } } 위와 같은 코드가 있을때 DIP를 지키면서 코딩한다면 단순히 Controller -> Service로 넘기기 위한 전달용 DTO를 만들어서 사용하시는지 궁금합니다. 두 번째로 @transactional에 관한 질문입니다. 데이터의 수정 및 변동이 있는 부분에는 @transactional을 붙이는 것이 좋다고 들어왔습니다. 그런데 강의의 코드에서는 붙인 부분과 안 붙인 부분이 나뉘는데 특별한 이유가 있을까요? 또 한 readonly 속성은 데이터를 읽기만 하는 부분에서는 성능에 도움이 된다고 들었습니다. 위의 내용들로 데이터의 변동이 일어나는 부분엔 @transactional을 붙이고, 읽어오기만 하는 부분에는 readonly 속성을 습관적으로 붙여왔는데 호돌맨님 께서는 @transactional을 사용하는 기준(?) 같은게 있으실까요? 긴 질문 읽어주셔서 감사합니다 :)

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
addvd 댓글 1 좋아요 0 조회수 236

findOne() 메소드 자료형

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] MemberService 클래스에서 findOne 메소드를 정의할때 왜 자료형이 Optional<Member>여야 하는지 궁금합니다.

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 1 좋아요 0 조회수 135

@Transactional(transactionManager = "createChatTransacationMansger") 질문 있습니다.

해결됨

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

질문1: 강의에서 saveChatMessage() 메소드 진입시 @Transactional(transactionManager = "createChatTransacationMansger") 사용하는것을 말씀 해주셨는데요. 선생님께서 말씀해주신 강의 내용을 그대로 말씀드리자면 " 웹소켓 같은 경우에는 하나의 커넥션 즉 세션을 하나에 계속 공유하고 계속 사용 중이기 때문에 이 스톰프를 사용하는 웹소켓 통신 아니면 기본적인 웹소켓 통신에서도 이 트랜잭션에 대한 경계가 되게 명확하지가 않는 경우가 있습니다. " 즉 이 말씀은 따로 이렇게 @Transactional public void saveChatMessage(Message msg) { chatRepository.save(chat); } @TransactionManager() 만 추가해서 관리 하면 문제가 생기고 @Transactional(transactionManager = "createChatTransacationMansger") 이렇게 별도로 TransactionManager 를 추가해서 관리 해야 문제가 없다고 이해 하면 될까요??? 왜 TransactionManager 를 따로 만들어서 관리하는지 이해가 안가네요 ㅠ,ㅠ 그리고 "웹소켓 같은 경우에는 하나의 커넥션 즉 세션을 하나에 계속 공유하고 계속 사용 중이기 때문에 이 스톰프를 사용하는 웹소켓 통신 아니면 기본적인 웹소켓 통신에서도 이 트랜잭션에 대한 경계가 되게 명확하지가 않는 경우가 있습니다" 즉 이 말씀은 saveChatMessage 경우는 웹소켓 전용만 사용 할때만 이용하는 오퍼레이션 이기 때문에 다른 HTTP 통신 경우에 오는 FLOW 경우는 saveChatMessage() 메소드는 사용하지 마라 라는 의미로 @Transactional(transactionManager = "createChatTransacationMansger") 이렇게 별도의 TransactionManager을 사용한 것인지 궁금 합니다. 질문2 선생님이 말씀해주신 내용을 그대로 말씀드리자면 플러시는 기본적으로 JPA에서 다루고자 하는 트랜잭션이 담겨있어야 되는데 담겨있지 않았다는 에러가 발생하게 될 거예요 왜냐하면 제가 말씀드렸던 것처럼 웹소켓은 하나의 통신으로만 공유를 하기 때문에 경계가 명확하지 않아서 JPA 에서 일반적으로 트랜지액션을 잘 인식을 하지 못하고 잘 넣어주지를 못합니다 이렇게 트랜젝션을 선언하지 않으면 문제가 발생된다고 해주셨는데요. @Transactional public <S extends T> S save(S entity) { Assert.notNull(entity, "Entity must not be null"); if (this.entityInformation.isNew(entity)) { this.entityManager.persist(entity); return entity; } else { return this.entityManager.merge(entity); } } JPA save 메소드를 보면 이렇게 @Transaction 을 선언하기 때문에 굳이 @Transaction 을 선언하지 않아도 문제가 없지 않을까요??

  • mysql
  • spring-boot
  • jpa
  • jwt
  • websocket
리나 댓글 2 좋아요 0 조회수 235

SecurityContextRepository부분 질문 있습니다

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

강의자료 95 page에는 커스텀 한 인증 필터를 구현할 경우 securityContext.saveContext() 를 명시적으로 작성해야 된다고 적혀있는데 해당 부분은 OncePerrequestFilter 를 통해 완전 처음부터 작성한 커스텀 필터일 경우이고 이번 강의에서는 AbstractAuthenticationProcessingFilter 를 상속받고 그 내부에서 successfulAuthentication 을 통해서 saveContext() 가 작동한다고 이해했는데 맞을까요?

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
kyb1208tg 댓글 2 좋아요 0 조회수 192

createMemberForm.html안에 <input name="name>태그가 setName과 동일한가

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] createMemberForm.html안에 <input>태그에 name="name"을 HTML 화면 상에 "spring"이라고 등록하면 MemberForm 컨트롤러에서 개체인 name으로 들어오게 된다는 것을 이해 했는데요. 그렇다면 name="name"이 form.setName한거라고 봐도 무방한가요?

  • java
  • spring
  • mvc
  • spring-boot
soojinkimss 댓글 2 좋아요 0 조회수 210

인기 태그

인프런 TOP Writers

주간 인기글