월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 부트 개념과 활용
안녕하세요 기선님.
강의 잘 듣고 있습니다 ~ 좋은 강의 제공해주셔서 감사드려요 ! 다름이아니라 실습중에 에러가 생겨서요ㅜㅜ 구글링을 해보고 했는데, 다른 부분들을 잘 이해하지 못해 해결이 잘 안되더라고요.. 그래서 이렇게 질문 남깁니다 ! 소스코드는 아래 공유드립니다 ! https://github.com/g1moon/study/tree/master/Web-Programming/%5Binflearn%5D-Spring-Boot/springbootjpa 우선 account를 엔티티 등록할 때 @Entity ->이부분 org.hibernate.annotations.Entity' is deprecated public class Account { @Id @GeneratedValue private Long id;------------------------------엔티티 어노테이션이 디프리케이트되더라고요... 다른 거로 임포트하면 하이버네이트 어노테이션을이용하라고 하는 것 같고요 .. 이러한 상태에서 빈 테스트를 돌렸을 떄 잘 돌아기간하는데,dataSoruce부분에서 문제가 생깁니다..SpringbootApplicationTest.java를 해보면 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'accountRepository': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Not a managed type: class me.g1moon.springbootjpa.account.Account at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:176) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1827) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1265) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) at org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver$1.getTarget(ContextAnnotationAutowireCandidateResolver.java:90) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:192) at com.sun.proxy.$Proxy71.save(Unknown Source) at me.g1moon.springbootjpa.account.AccountRepositoryTest.di(AccountRepositoryTest.java:45) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58) Caused by: java.lang.IllegalArgumentException: Not a managed type: class me.g1moon.springbootjpa.account.Account at org.hibernate.metamodel.internal.MetamodelImpl.managedType(MetamodelImpl.java:582) at org.hibernate.metamodel.internal.MetamodelImpl.managedType(MetamodelImpl.java:85) at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:75) at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getEntityInformation(JpaEntityInformationSupport.java:66) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:229) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:179) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:162) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:72) at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:309) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:297) at org.springframework.data.util.Lazy.getNullable(Lazy.java:212) at org.springframework.data.util.Lazy.get(Lazy.java:94) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:244) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:57) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169) ... 42 more 2020-08-14 16:02:39.784 INFO 94902 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2020-08-14 16:02:39.785 INFO 94902 --- [extShutdownHook] .SchemaDropperImpl$DelayedDropActionImpl : HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down' Process finished with exit code 255 이러한 에러들이 뜨네요.. 답변해주시면 감사하겠습니다 ~!코로나 조심하시고 즐거운 하루 보내세요!
- 미해결스프링 부트 개념과 활용
프로파일 동작 문의
안녕하세요, 스프링 개발 경험이 없이 예제를 배우는 스프링을 수강하고 스프링 부트 강의를 듣고 있습니다. BaseConfiguration에서 Profile("prod") 설정, properties에서 "prod" 설정 후 SamplRunner에서 @Autowired 에서 String hello의 값이 출력되었는데... 이 "prod"가 어떻게 SampleRunner의 hello에 매핑되는지 궁금합니다. 그리고 이 스프링 부트 강의를 듣기 전에 들어야할 선수 강의가 있으면 어떤건지 알고싶습니다. 감사합니다.
- 미해결스프링 부트 개념과 활용
데이터 바인딩과 conver는 같은걸까요??
데이터 바인딩 배울때 ex) /example/1로 요청이 들어오면 1이 string 타입 인데 민약 public void example(Event event) Event타입으로 바꿀때 배웠는데 여기서 httpMessageConverters에서 데이터가 json타입으로 와서 객체로 변환될때 convert라고 설명해주셨는데 데이터 바인딩이나 컨버트나 같은 의미라고 보면 될까요?
- 미해결스프링 부트 개념과 활용
property명에 대한 질문입니다
카멜 케이스는 단어간의 구분을 대문자 시작으로 표기 (howLong) 스네이크 케이스는 단어간의 구분을 언더바로 표기 (how_long) 이렇게 구분하는것으로 알고 있는데 이번 예제에서 perperties 파일에는 how-long이라고 하이픈을 사용하셨습니다 카멜, 스네이크 어느쪽에도 포함되지 않는 표기법인거 같은데 이런 경우 스프링이 다 파싱해서 필드 매칭시켜 처리하는건가요? 그리고 혹시 실무에서도 저런식으로 하이픈을 사용하여 처리하는 경우가 많은지도 궁금합니다. 저희 회사에서는 다 카멜케이스만 쓰고 있거든요 'ㅅ'a
- 미해결스프링 부트 개념과 활용
저 그러면 @autowired SpringApplication springapplication
@Autowired SpringApplication springApplication; SpringApplication클래스 같은경우도 @ComponentScan에서 @component , , @Service같은 어노테이션없어도 쓸수 있는게 @EnableAutoConfiguration으로 자동설정되어 쓸수 있는것일까요?
- 미해결스프링 부트 개념과 활용
테스트 질문입니다!
테스트 강의를 듣던 중에 궁금합니다. 아직 초보라서 그런지, 왜 테스트를 해야 하는지 이해가 잘 안갑니다. 테스트로 돌리는 코드와 일반 코드는 무슨 차이가 있는건가요?? 강의에서도 그냥 일반적인 Runner에서 돌리는 것이랑 뭐가 다른지 잘 모르겠습니다ㅠㅠ
- 미해결스프링 부트 개념과 활용
application 파일 우선순위에 따른 로딩여부 질문드립니다.
jar 파일 내부에 application.yaml 파일을 설정해두었습니다. 그리고 3개의 profiles (local, dev, prd) 을 추가해 두었습니다. 이후에 jar 파일 밖에서 application.yml 파일을 지정하고 profiles 로 outside 를 주었습니다. jar 실행시 active.profiles=outside,local 로 주었는데 local 부분을 읽지 못했습니다. 테스트 결과 jar 파일 안에 있는 application.yml 파일은 아예 읽지 못하는것 같았고, 저는 jar 밖에 있는 application.yaml 에서는 최소값만 override 하고, 나머지는 jar안에 있는 application.yml에서 설정된 값으로 쓰고 싶었습니다. 즉 jar 밖에 있는 application.yml 파일을 사용한다고 지정하게되면, jar 안에 있는 우선순위가 낮은 application.yml 파일은 아예 읽어 오지 않는건가요?
- 해결됨스프링 부트 개념과 활용
혹시 사용하고 계신 폰트 알 수 있을까요??
강의 잘 듣고 있습니다! 현재 인텔리제이에서 네이버D2 폰트 쓰고 있는데, 백기선님께서 쓰시는 폰트가 좀 더 부드러운 느낌이 들어서 그런데, 혹시 폰트가 뭔지 알 수 있을까요?? 감사합니다
- 미해결스프링 부트 개념과 활용
keytool 관련 질문 드립니다.
내장 웹 서버 응용 2부 : HTTP와 HTTP2 강의를 보고 따라하고 있습니다. 영상에서는 해당 부분에 인증서를 만들기위해 터미널에서 keytool 을 이용해서 keystore.p12 파일을 만들었습니다. 저도 똑같이 터미널에서 똑같이 타이핑을 하고 진행을 했습니다. 비밀번호 입력하고 질문에 모두 입력하고 난 후 마지막 질문에서 yes를 입력하면 다시 처음으로 돌아갑니다. 파일이 생성되지 않고 계속 같은 질문을 계속 물어보네요. 어떻게 진행해야 하는지 알려주시기 바랍니다. 참고로 windows 10입니다.
- 미해결스프링 부트 개념과 활용
admin dependency
수업 자료에 있는 dependency를 똑같이 pom.xml에 넣으실 분들이 있을까 해서 추가합니다. springboot 2.3.1 과 admin 2.0.1 을 함께 사용하면 에러가 발생합니다. 알맞는 버전으로 다들 바꿔주세요 https://github.com/codecentric/spring-boot-admin/issues/1054 springboot 버전과 admin 의존성 버전을 맞춰주어야 하기 때문에 maven repository에서 가장 최신 version을 가져와서 사용하세요 :)
- 미해결스프링 부트 개념과 활용
Archetype 설정
프로젝트 생성할 떄용 아래 사진처럼 여러개의 Archetype이 나오는데 어떤거를 설정해야 하나요 ??
- 해결됨스프링 부트 개념과 활용
JPA, Hibernate, Spring Data JPA에 대한 상속,구현관계 질문
"스프링데이터 5부: 스프링 데이터 JPA" 강의에서 Spring Data JPA -> JPA -> Hibernate -> DataSource 로 상속 및 구현 관계를 알려주셨는데 첫번째 질문 DataSource는 잘 모르겠습니다만 JPA는 ORM을 위한 표준 Java interface이고 interface에 있는 method를 구현한 것이 Hibernate이기 때문에 순서가 다음처럼 되어야 하는게 아닌지요? Spring Data JPA -> Hibernate -> JPA 두번째 질문 Hibernate class를 확인해봤습니다만 DataSource interface를 구현하고 있지는 않았는데 그럼 DataSource는 어디서 구현하고 있는 것일까요?
- 해결됨스프링 부트 개념과 활용
강의와 관련없는 질문 하나만 드리겠습니다.
기선님 강의 영상 보다보면 앱 전환하기 위해 dock에서 마우스 커서 움직여서 icon에 mouse over 될 때 해당 icon이 커지는 애니메이션 효과가 있던데 os의 dock관련 설정을 확인해도 그런 걸 찾을 수가 없더라고요. 관련해서 정보 공유 부탁 드려도 될른지요?
- 미해결스프링 부트 개념과 활용
mvn pacakge
강사님 이 오류 같은 경우 왜 발생 하는지 궁금하네요 ㅜ
- 미해결스프링 부트 개념과 활용
URL 질문입니다.
connection.getMetaData().getURL()실행 시 testdb가 아니고 jdbc:h2:mem:07741a0e-9a63-4b70-a46c-678c5bf65bfd 와 같이 출력 되고 실행시 마다 바뀝니다.연결할때도 testdb가 아니고 저쪽으로 연결해야되고 뭐가 문제인가요 ... ?
- 미해결스프링 부트 개념과 활용
contentType 사용이 안됩니다
이렇게 contentType 사용이 안됩니다. 그리고 application_json_utf8이 deprecated 되어있어서 json_value 로 사용했는데 상관이 있나요 ?
- 해결됨스프링 부트 개념과 활용
application listener를 람다로 구현하는 경우에 대해서 질문 드립니다.
주석 처리한 부분대로 하면 어플리케이션이 시작되고 나서 한 번만 출력되는데, 람다로 구현해서 add하면 여러 번 출력됩니다.아직 람다가 익숙하지 않지만 여러 번 출력되는 이유를 잘 모르겠습니다. @SpringBootApplication public class StudyaloneApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(StudyaloneApplication.class); // app.addListeners(new ApplicationListener<ApplicationStartedEvent>() { // // @Override // public void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent) { // System.out.println("App Started =================================="); // } // }); ApplicationListener listener = (ApplicationStartedEvent) -> { System.out.println("App Started =================================="); }; app.addListeners(listener); app.run(args); }
- 미해결스프링 부트 개념과 활용
커맨드라인 아규먼트 우선순위가 안먹히는 것 같습니다.
커맨드 아규먼트에는 KimGilDong 을 입력했는데, application.properties 에 적용되어있는 hongGilDong 이 출력이 됩니다. 혹시 제가 실수를 할만한 부분이 있을까요?
- 미해결스프링 부트 개념과 활용
controllerAdvice 와 ExceptionResolver 차이
두가지다 애플리케이션 전역에서 발생한 에러를 처리하는데 어떤 차이가 있을까요?? https://stackoverflow.com/questions/35323174/what-are-the-advantages-of-controlleradvice-over-exceptionhandler-or-handlerex 이곳에서는 응답본문의 조작을 할 수 있냐 없냐를 보고 있는데 controllerAdvice는 익셉션 발생에 따라서 여러 방식으로 처리 할 수 있고 ExceptionResolver 는 한가지 방식으로 밖에 처리하지 못해서 그런건가요?
- 미해결스프링 부트 개념과 활용
assertThat 옵션+엔터 누르면 자동으로 임폴트가안되네요
방법이 있을까요? 아니면 assertThat 사용할때마다 import 코드를 다써줘야하나요?