묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
Backpressure Example 코드 질문드립니다
기존 예제 (sleep 시간이 5L인 경우)에선 Exception이 발생하는 것을 확인했습니다. 하지만 sleep 시간을 더 늘리니까 Erorr가 발생하지않았습니다. 제 예상대로라면 버퍼가 더 빨리 차기 때문에 에러가 발생해야하는데, 동작이 이해가 되지 않습니다. public class BackpressureStrategyErrorExample { public static void main(String[] args) { Flux .interval(Duration.ofMillis(1L)) .onBackpressureError() .doOnNext(Logger::doOnNext) .publishOn(Schedulers.parallel()) .subscribe(data -> { // 왜 50L, 500L로 하면 에러가 발생하지 않을까? TimeUtils.sleep(500L); Logger.onNext(data); }, error -> Logger.onError(error)); TimeUtils.sleep(5000L); } }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloController 오류 질문(addAttribute 오류)
package hello.hellospring.controller; import ch.qos.logback.core.model.Model; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controllerpublic class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } 위에 사진 처럼 addAttribute에 빨간 줄이 떴는데 얘는 어떻게 하나요? Cannot resolve method 'addAttribute' in 'Model'오류 코드입니다.C:\Users\kimga\OneDrive\바탕 화면\hello\hello-spring\src\main\java\hello\hellospring\controller\HelloController.java:12:13java: cannot find symbolsymbol: method addAttribute(java.lang.String,java.lang.String)location: variable model of type ch.qos.logback.core.model.Model
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러에서 리다이렉트를 해주는건 ssr을 이용할때만 고려하면 되는 건가요?
Ssr을 이용할때는 직접 뷰를 이동하는 거니 백엔드 개발자가 리다이렉트도 처리를 해주어야 하는데 csr을 이용하여 json으로 통신할때는 백엔드 개발자는 데이터만 잘 넘겨주는것이 끝이기 떄문에 리다이렉트 관련 내용은 프론트 개발자가 해결하는 부분 인가요?그리고 @ModelAttribute와 파라미터에 사용되는 Model 객체에서 @ModelAttribute 는 Item 클래스의 멤버 변수를 세팅해주는것이기 때문에 csr을 이용하여 웹 개발을 할 때 return item 을 하여 객체가 json으로 변환되어 클라이언트에게 전달되니 @ModelAttribute 는 csr을 이용할때도 사용되는 어노테이션이고 Model객체의 model.addAttribute()는 ssr의 뷰 영역에서 사용될 데이터를 넘겨주는 기능이라서 csr을 이용할때는 사용을 안하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링의 Model 를 뷰로 전달하는 원리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링이 제공하는 Model 을 사용할때, 인자로 받아와서 사용하는 것을 보았습니다. 예전에 "스프링 없이 mvc 패턴 구현하기" v4 에서는 모델값을 요청 객체에 담아서 뷰.render(req, res) 이런식으로 넘겨주었는데요, 이것도 유사한 방식으로, 스프링에 의해 모델 객체가 자동으로 요청 객체에 담겨서 뷰로 전달되는걸까요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤 컨테이너 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]싱글톤 컨테이너 사용 시에 기존의 싱글톤 패턴을 구현하는 코드들이 필요없는 장점이 있는데 그렇다면 private 한 생성자 코드를 작성하지 않아도 된다는 건데, new를 통해 새로운 객체 생성은 어떻게 막나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
[공유]스프링 3버전 부터는 강의내용의 jstl 버전이 정상동작하지 않습니다
mvc -> member 목록 조회시 500 에러나시는분들..jsp 내용은 그냥 지나쳐도 된다하시지만.. 에러나는게 신경쓰여서 찾아보니 gradle 의존성에 넣은 jstl 버전이 낮아서 500에러를 뱉더군요 의존성을 아래와 같이 변경하시고 gradle 재시작, 프로젝트 다시 빌드하시면 정상동작합니다. //JSP implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl:3.0.1' implementation 'jakarta.servlet:jakarta.servlet-api' implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl'
-
미해결스프링 핵심 원리 - 기본편
@Configuration과 new AnnotationConfigApplicationContext()의 기능
스프링으로 전환하면서 AppConfig.class에 @Configuration을 붙이고 테스트에서 AnnotatoinConficApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class)를 해주는데요. 두 가지 각각의 기능이 무엇인지 궁금합니다.후자의 경우 ApplicationContext가 스프링 컨테이너가 되고 그 위로 AppConfig.class파일을 올려주는 것 같은데.. @Configuration은 싱글톤 보장을 위해 붙이는 것인지..물론 스프링부트를 사용할 때는 뒤의 스프링컨테이너생성코드를 따로 적어주지 않으니까 더 헷갈려서요.@ComponentScan의 경우 스프링컨테이너가 훑을 범위를 지정해주는게 맞는건가요? @Configuration에도 @Component가 되어있어서 @ComponentScan의 대상이 되는거구요..뭔가 수업을 따라갈때는 물흐르듯 이해가 되는데 개념을 확실히 잡으려고 하면 잘 안 되네요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
버전 2.7.18 으로 자바 11 맞추어서 하면 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.동영상에는 2.3.1 에 자바 11이던데버전 2.7.18 으로 자바 11 맞추어서 하면 될까요? 일단 돌아가긴 하는거 같습니다.... 하도 버전 맞추는데 시간이 많이걸려서 확인하고 할까합니다.
-
미해결스프링부트 시큐리티 & JWT 강의
세션 인증방식이 REST 원칙에 위배되는 건가요?
세션 인증방식이 REST 원칙에 위배되는 건가요?세션은 stateful합니다.rest는 stateless를 지향하고요그렇다면 세션 인증방식이 REST 원칙에 위배되는 건가요?근데 네이버나 이런사이트들도 세션을 쓰는거 같은데어떻게 개념을 정리해야 하는지 궁금합니다
-
미해결스프링 핵심 원리 - 고급편
ProxyFactory 는 어떻게 인터페이스와 클래스를 구분하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 내용에서, 프록시로 만들어질 타겟이 인터페이스를 베이스로 하느냐 클래스를 베이스로 하느냐에 따라, InvocationHandler 를 사용할지, CBLIB를 사용할지 결정한다고 하셨습니다. ProxyFactory는 어떻게 인터페이스 베이스인지 클래스베이스인지 구분하는지 궁금합니다!instanceof 메서드같이 구분해주는 메서드가 존재하는 걸까요?
-
미해결스프링 핵심 원리 - 기본편
13분 테스트 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.테스트 오류 원인과 해별 방법에 대해서 모르겠습니다.https://drive.google.com/file/d/1QYqXqOodib6goDP-k8RDb-gC7iChx9D1/view?usp=drive_link1. 문제 영역을 실행할 수 있는 방법- AutoAppConfigTest 테스트 진행 시 오류 발생2. 문제가 어떻게 나타나는지에 대한 상세한 설명- 테스트 오류
-
미해결스프링 핵심 원리 - 기본편
basicScan 테스트 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요 13분 basicScan 테스트 진행시 이러한 오류가 발생합니다. 강의에 라이브코딩을 한것 같은데 혹시 어떤 문제인지 알 수 있을까요..? https://drive.google.com/file/d/1QYqXqOodib6goDP-k8RDb-gC7iChx9D1/view?usp=sharing
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HttpEntity를 특별히 사용해야만 하는 상황이나 사용할떄의 장점이 있나요?
지금 설명으로는 @RequestBody만 사용하는게 보기도 깔끔하고 반환도 스트링 형, 객체형 다 가능해서 유연성이 더 높은것 같은데 특별히 HttpEntity만을 사용하는 이유가 있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[JPA와 DB 설정, 동작확인] 강의에서 테스트 에러
안녕하세요 😀 강사님께서는 <JPA와 DB 설정, 동작확인> 강의에서(12:57) 아래와 같은 에러가 나셨는데저는 강사님과 같이 JUnit4로 같은 코드를 작성하였는데Failed to load ApplicationContext for [WebMergedContextConfiguration@6fc1a8f6 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@106cc338, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@26ceffa8, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@60129b9a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@21337f7b, org.springframework.boot.test.context.SpringBootTestAnnotation@d5186646], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@6fc1a8f6 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@106cc338, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@26ceffa8, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@60129b9a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@21337f7b, org.springframework.boot.test.context.SpringBootTestAnnotation@d5186646], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]이와 같은 에러가 납니다.이런 식으로 에러가 나는데 맞는 걸까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
5. 데이터 접근 기술 - JPA.pdf 11쪽
JPA가 만들어서 실행한 SQL select item0_.id as id1_0_0_, item0_.item_name as item_nam2_0_0_, item0_.price as price3_0_0_, item0_.quantity as quantity4_0_0_ from item item0_ where item0_.id=? item_nam2_0_0_ -> item_name2_0_0_ 이렇게 수정하는 것이 맞지 않은가요?item_nam2_0_0_ <- 이것이 맞다면, sql으로 변환되는 기준에 대해서 여쭈어보고자 합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인라인을 사용할 때의 이스케이프 처리와 인라인을 안 쓸 때의 이스케이프 처리 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@GetMapping("/javascript") public String javascript(Model model) { model.addAttribute("user", new User("user\"A\"", 10)); addUsers(model); return "basic/javascript"; }컨트롤러에선 위 코드에 나온 대로 model.addAttribute("user", new User("user\"A\"", 10));이렇게 한 다음, javascript.html은<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script type="text/javascript"> var username = "[[${user.username}]]"; document.write(username); </script> <script th:inline="javascript" type="text/javascript"> var username = [[${user.username}]]; document.write(username); </script> </body> </html>이렇게 수정했습니다.(자바스크립트를 제대로 배운 게 아니라서 이렇게 코드를 짜도 되는지 모르겠습니다.) 서버를 실행하면인라인 사용 전이나 후나 똑같이user"A"이렇게 보입니다. 페이지 소스 보기를 누르면이렇게 뜹니다. 인라인 사용 전이나 사용 후 모두 이스케이프 처리된 거 아닌가요? 인라인을 사용하지 않아도 이스케이프 처리를 해 주는데, 자바스크립트 인라인을 사용해서 다른 모양(?)으로 이스케이프 처리를 해 주는 이유가 궁금합니다. 인라인을 사용하지 않은 이스케이프 처리는 문제가 생길 수 있나요?(혹시 HTML Entity는 HTML 코드 작성 부분에서만 생겨도 되고, 자바스크립트 코드 안에선 생기면 HTML Entity가 생기면 안 되는 건가요?) 이스케이프를 HTML Entity로 처리하는 것과 자바스크립트 인라인을 통해 이스케이프 처리를 하는 건 어떻게 다른지 궁금합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
Docker의 mysql과 스프링 연동이 안됩니다 (윈도우)
docker pull mysql:8.3.0 $ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -d -p 3305:3305 mysql:8.3.0 ... use stock_example로컬에 mysql이 이미 깔려있어서 포트번호를 3305로 바꿔서 만들었어요. 위와같이 도커 초기설정 후 만든 yml 파일입니다spring: jpa: hibernate: ddl-auto: create show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3305/stock_example username: root password: 1234 logging: level: org: hibernate: SQL: DEBUG type: descriptor: sql: BasicBinder: TRACE 이렇게하고 Application을 실행했는데 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189) ~[mysql-connector-j-8.3.0.jar:8.3.0] at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100) ~[HikariCP-5.0.1.jar:na] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-5.0.1.jar:na] at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) ~[spring-orm-6.1.5.jar:6.1.5] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.1.5.jar:6.1.5] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-6.1.5.jar:6.1.5] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-6.1.5.jar:6.1.5] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.5.jar:6.1.5] at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1234) ~[spring-context-6.1.5.jar:6.1.5] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:952) ~[spring-context-6.1.5.jar:6.1.5] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.5.jar:6.1.5] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.4.jar:3.2.4] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.4.jar:3.2.4] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.4.jar:3.2.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.4.jar:3.2.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.4.jar:3.2.4] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.4.jar:3.2.4] at com.example.stock.StockApplication.main(StockApplication.java:10) ~[main/:na]Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 이런 오류가 나네요 ㅠㅠ 보면 연결이 안되는거 같은데 어디서 문제일까요..
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
check에 controller의 의미?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@Test void checked() { Controller controller = new Controller(); assertThatThrownBy(() -> controller.request()) .isInstanceOf(Exception.class); } @Test void checked2() { Service service = new Service(); assertThatThrownBy(() -> service.logic()) .isInstanceOf(Exception.class); }컨트롤러를 만들어서 하지 않고 그냥 서비스에서 테스트해도 되는데, 컨트롤러를 만들어서 하는 이유는 뭔지 궁금합니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
home.html이 아닌 index.html이 랜딩됩니다
안녕하세요.회원관리 - 웹MVC개발 부분 강의 듣고 차근차근 따라가고 있었는데home.html이 아닌 자꾸 index.html이 랜딩됩니다.. 기존에 질문해주셨던 분의 글이 있길래 봤는데 해결이 안되어서요 ...구글 사용기록 전체기간을 삭제 -> 실패 index.html에 <meta charset="UTF-8" content="no-cache, no-store, must-revalidate"> 태그 넣어봄 -> 실패home.html에 태그 넣어봄 -> 실패구글 시크릿 모드에서 접속 -> 실패서버도 잘 올라가는데.. 고민하다가 질문 글 작성합니다 ㅜㅜ 파일 위치는 아래와 같이 하고 있었습니다.. HomeControllerhome.htmlindex.html
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Whitelabel Error Page 라고 나옵니다.. 구글링해 보면서 찾아보았는데 어떻게 해결하죠?(해결)
2024-04-11 12:48:27.471 INFO 24733 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2024-04-11 12:48:27.471 INFO 24733 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2024-04-11 12:48:27.472 INFO 24733 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 msh2-console로 들어갔을때의 에러 코드이고이렇게 사이트 에러가 나오고#spring: # config: # activate: # on-profile: local # datasource: # url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" # username : "jo" # password : "" # driver-class-name : org.h2.Driver #jpa: # hibernate: # ddl_auto : create # properties : # hibernate: # format_sql: true # show_sql : ture # dialect: org.hibernate.dialect.H2Dialect # #h2: # console: # enabled : true # path: /h2-console spring: config: activate: on-profile: local datasource: url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" username: "sa" password: "" driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: true show_sql: true dialect: org.hibernate.dialect.H2Dialect open-in-view: false h2: console: enabled: true path: /h2-console --- #spring: # datasource: ## //Spring boot가 어떠한 dababase를 가리키게 할 것인가 # url: "jdbc: mysql://localhost/library" ## jdbc -> java로 만든 DB-connector ## : mysql -> 종류는 mysql ## //localhost 사용할 주소 ## /사용할 DB # username: "root" # password : "1234" # driver-class-name: com.mysql.cj.jdbc.Driver ## DB에 접근할 때 사용할 프로그램을 의미 spring: config: active: on-profile: dev datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none properties: hibernate: show_sql: true format_sql: true dialect : org.hibernate.dialect.MySQL8Dialect open-in-view: false작성한 yml코드 입니다...2024-04-11 18:52:49.259 INFO 27511 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 18.0.2 on Jun0.local with PID 27511 (/Users/jojun-yeong/Desktop/강의 자료/1월25/Java_Spring_Library_Application/library-app/out/production/classes started by jojun-yeong in /Users/jojun-yeong/Desktop/강의 자료/1월25/Java_Spring_Library_Application/library-app) 2024-04-11 18:52:49.262 INFO 27511 --- [ main] c.g.libraryapp.LibraryAppApplication : The following 1 profile is active: "local" 2024-04-11 18:52:49.899 INFO 27511 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-04-11 18:52:49.959 INFO 27511 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 51 ms. Found 3 JPA repository interfaces. 2024-04-11 18:52:50.529 INFO 27511 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2024-04-11 18:52:50.539 INFO 27511 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2024-04-11 18:52:50.540 INFO 27511 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.69] 2024-04-11 18:52:50.632 INFO 27511 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2024-04-11 18:52:50.632 INFO 27511 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1317 ms 2024-04-11 18:52:50.798 INFO 27511 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2024-04-11 18:52:51.112 INFO 27511 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2024-04-11 18:52:51.164 INFO 27511 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2024-04-11 18:52:51.233 INFO 27511 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 5.6.14.Final 2024-04-11 18:52:51.460 INFO 27511 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2024-04-11 18:52:51.577 INFO 27511 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect 2024-04-11 18:52:52.113 INFO 27511 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2024-04-11 18:52:52.121 INFO 27511 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2024-04-11 18:52:52.547 WARN 27511 --- [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2024-04-11 18:52:52.793 INFO 27511 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2024-04-11 18:52:52.799 INFO 27511 --- [ main] c.g.libraryapp.LibraryAppApplication : Started LibraryAppApplication in 4.005 seconds (JVM running for 4.452)