[SPRING] 자바 프로젝트를 시작할 때 클래스 충돌 : ClassMetadataReadingVisitor는 수퍼 클래스로서 org.springframework.asm.ClassVisitor 인터페이스를가집니다.
SPRING자바 프로젝트를 시작할 때 클래스 충돌 : ClassMetadataReadingVisitor는 수퍼 클래스로서 org.springframework.asm.ClassVisitor 인터페이스를가집니다.
최신 Spring 프레임 워크 버전 (3.2.2-RELEASE)을 사용하여 Java 웹 프로젝트를 개발 중이지만 프로젝트가 시작될 때 문제가 발생합니다. 세부 오류는
나는 인터넷과이 사이트에서이 문제를 연구했고, 단서를 얻었다. 내 프로젝트에서 asm 및 spring-asm 라이브러리를 제거했지만 작동하지 않았습니다. 나는 기본 JRE의 rt.jar에 정의 된 또 다른 ClassVisitor 인터페이스가 있다는 것을 알았다. 이 충돌이 원인인가?
그러나 나는 그것을 인식 :
class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata {
private String className;
....
}
ClassMetadataReadingVisitor는 org.springframework.asm.ClassVisitor 클래스 (이미 스프링 코어 패키지로 제공됨)를 참조하므로 JRE의 com.sun.xml.internal.ws.org.objectweb.asm.ClassVisitor 인터페이스와 어떻게 충돌 할 수 있습니까? 어떻게 이런 일이 일어날 지 모르겠다.
다음은 전체 스택 추적입니다.
[ERROR 13:49:39] (ContextLoader:319) - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\workspace\.projects\myproject\trunk\target\myproject\WEB-INF\classes\com\myproject\action\AuthenticationAction.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:63)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:257)
... 47 more
[ERROR 13:49:39] (ContextLoader:319) - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\workspace\.projects\myproject\trunk\target\myproject\WEB-INF\classes\com\myproject\action\AuthenticationAction.class]; nested exception is java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1315)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:63)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:257)
... 47 more
다음은 종속성 목록입니다.
activation-1.0.2.jar
antlr-2.7.7.jar
antlr-runtime-3.3.jar
arena-0.1.jar
asm-3.3.1.jar (removed from classpath)
aspectjweaver.jar
bcprov-jdk16-145.jar
c3p0-0.9.1.2.jar
cglib-2.1_3.jar
com.springsource.org.apache.xml.serializer-2.7.1.jar
commons-beanutils-1.8.3.jar
commons-codec-1.7.jar
commons-collections-3.2.1.jar
commons-dbcp-1.4.jar
commons-digester-2.1.jar
commons-fileupload-1.2.2.jar
commons-httpclient-3.1.jar
commons-io-2.4.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-pool-1.6.jar
commons-vfs-patched-1.9.1.jar
commons-vfs2-2.0.jar
csv.jar
dom4j-1.6.1.jar
fop-1.0.jar
gson-2.2.2.jar
htmlcleaner-2.4.jar
httpclient-4.2.3.jar
httpcore-4.2.3.jar
httpcore-nio-4.2.3.jar
httpmime-4.2.3.jar
jaxen-1.1-beta-6.jar
jcifs-1.3.15.jar
jdom-1.0.jar
jersey-client-1.8.jar
jersey-core-1.8.jar
jersey-multipart-1.0.3.144640.jar
jersey-server-1.8.jar
jersey-spring-1.8.jar
joda-time-2.2.jar
joda-time-jsptags-1.1.1.jar
jodconverter-2.2.2.jar
json-lib-2.4-jdk15.jar
json-simple-1.1.1.jar
json-taglib-0.4.1.jar
jsoup-1.7.2.jar
jstl-1.2.jar
juh-3.2.1.jar
jurt-3.2.1.jar
log4j-1.2.17.jar
mail-1.4.5.jar
persistence-api-1.0.2.jar
poi-3.9.jar
poi-ooxml-3.9.jar
poi-ooxml-schemas-3.9.jar
poi-scratchpad-3.9.jar
postgresql-9.1-901-1.jdbc4.jar
quartz-2.1.6.jar
ridl-3.2.1.jar
scribe-1.3.3.jar
slf4j-api-1.7.5.jar
slf4j-jdk14-1.7.5.jar
spring-aop-3.2.2.RELEASE.jar
spring-asm-3.1.4.RELEASE.jar (removed from classpath)
spring-beans-3.2.2.RELEASE.jar
spring-context-3.2.2.RELEASE.jar
spring-context-support-3.2.2.RELEASE.jar
spring-core-3.2.2.RELEASE.jar
spring-expression-3.2.2.RELEASE.jar
spring-jdbc-3.2.2.RELEASE.jar
spring-tx-3.2.2.RELEASE.jar
spring-web-3.2.2.RELEASE.jar
spring-webmvc-3.2.2.RELEASE.jar
standard-1.1.2.jar
stax-api-1.0.1.jar
stringtemplate-4.0.2.jar
unoil-3.2.1.jar
velocity-1.7.jar
velocity-tools-2.0.jar
wmf2svg-0.9.3.jar
xalan-2.7.1.jar
xercesImpl-2.11.0.jar
xml-apis-1.4.01.jar
xmlbeans-2.6.0.jar
xmlgraphics-commons-1.5.jar
xstream-1.4.4.jar
해결법
-
==============================
1.나는 pom 의존성을 재정렬함으로써 같은 문제를 해결했다.
나는 pom 의존성을 재정렬함으로써 같은 문제를 해결했다.
org.springframework.security에서 문제가 발생했습니다. 그래서 나는 그것을 의존성의 끝으로 가져 왔습니다.
-
==============================
2.나는 mvn 의존성을 생성 한 후에도 같은 문제를 해결했다 : 나무와 오래된 봄 버전을 내 나무에서 찾았다. 실제로, org.springframework에 대한 의존성이있었습니다 : spring-asm : 3.0.7-RELEASE 내 종속성.
나는 mvn 의존성을 생성 한 후에도 같은 문제를 해결했다 : 나무와 오래된 봄 버전을 내 나무에서 찾았다. 실제로, org.springframework에 대한 의존성이있었습니다 : spring-asm : 3.0.7-RELEASE 내 종속성.
-
==============================
3.스프링 버전> 3.2.0을 사용하는 경우 스프링 코어에 포함되었으므로 더 이상 spring-asm을 더 이상 포함 할 필요가 없습니다.
스프링 버전> 3.2.0을 사용하는 경우 스프링 코어에 포함되었으므로 더 이상 spring-asm을 더 이상 포함 할 필요가 없습니다.
빌드 정의에서 spring-asm을 제거하고 spring-core가 있는지 확인하십시오.
http://docs.spring.io/spring-framework/docs/3.2.16.RELEASE/spring-framework-reference/htmlsingle/#migration-3.2-inline-asm을 참조하십시오.
-
==============================
4.나는 비슷한 이슈를 가지고 있었고 근본적인 원인은 spring-asm 3.1.0을 의존성으로 포함하는 다른 spring lib였다.
나는 비슷한 이슈를 가지고 있었고 근본적인 원인은 spring-asm 3.1.0을 의존성으로 포함하는 다른 spring lib였다.
내 gradb 빌드 스크립트의 모든 구성에서 'spring-asm'을 제외하여이 문제가 해결되었습니다.
configurations { all*.exclude group: 'org.springframework', module: 'spring-asm' }
-
==============================
5.나 한테 똑같은 문제가있어. 나는 'mvn dependence : tree'를 실행했고 이전 버전의 spring-aop이 가져오고 있음을 알아 차렸다. 그래서 저의 spring-exclusions에 추가하여 내 문제를 수정했다 :
나 한테 똑같은 문제가있어. 나는 'mvn dependence : tree'를 실행했고 이전 버전의 spring-aop이 가져오고 있음을 알아 차렸다. 그래서 저의 spring-exclusions에 추가하여 내 문제를 수정했다 :
<dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-spring</artifactId> <version>${jersey.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </exclusion> </exclusions> <scope>provided</scope> </dependency>
-
==============================
6.Spring 보안을 어플리케이션에 추가하려고 할 때 같은 문제가 발생했습니다. 문제는 다음을 추가하여 해결되었습니다.
Spring 보안을 어플리케이션에 추가하려고 할 때 같은 문제가 발생했습니다. 문제는 다음을 추가하여 해결되었습니다.
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.2.2.RELEASE</version> </dependency>
-
==============================
7.저지 - 스프링 의존성에 대한 배제를 추가하면서이 문제를 해결했습니다.
저지 - 스프링 의존성에 대한 배제를 추가하면서이 문제를 해결했습니다.
<exclusion> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </exclusion>
from https://stackoverflow.com/questions/15758151/class-conflict-when-starting-up-java-project-classmetadatareadingvisitor-has-in by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring Boot 2.0 마이그레이션 후 : driverClassName에 jdbcUrl이 필요합니다. (0) | 2018.12.15 |
---|---|
[SPRING] Spring 컨트롤러로 에러 404를 처리한다. (0) | 2018.12.15 |
[SPRING] 어노테이션을 사용하여 스프링 4의 특성 파일을 다시로드하는 방법은 무엇입니까? (0) | 2018.12.15 |
[SPRING] 계정 생성, 암호 분실 및 암호 변경 (0) | 2018.12.15 |
[SPRING] @Service 주석은 어디에 보관해야합니까? 인터페이스 또는 구현? (0) | 2018.12.15 |