java–IllegalStateException–@ComponentScanning springframework包

java–IllegalStateException–@ComponentScanning springframework包,第1张

概述我一直在研究以下教程:http://spring.io/guides/gs/rest-service/我最初能够使代码正常工作(运行完成的教程,发送HTTP消息并获得正确的响应)并成功扩展它.进一步扩展后,我遇到了以下异常:java.lang.IllegalStateException: Could not evaluate condition on org

我一直在研究以下教程:

http://spring.io/guides/gs/rest-service/

我最初能够使代码正常工作(运行完成的教程,发送http消息并获得正确的响应)并成功扩展它.

进一步扩展后,我遇到了以下异常:

java.lang.IllegalStateException: Could not evaluate condition on org.springframework.boot.autoconfigure.PropertyPlaceholderautoConfiguration#propertySourcesPlaceholderConfigurer due to internal class not found. This can happen if you are @ComponentScanning a springframework package (e.g. if you put a @ComponentScan in the default package by mistake)    at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:51)    at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:92)    at org.springframework.context.annotation.ConfigurationClassBeanDeFinitionReader.loadBeanDeFinitionsForBeanMethod(ConfigurationClassBeanDeFinitionReader.java:174)    at org.springframework.context.annotation.ConfigurationClassBeanDeFinitionReader.loadBeanDeFinitionsForConfigurationClass(ConfigurationClassBeanDeFinitionReader.java:136)    at org.springframework.context.annotation.ConfigurationClassBeanDeFinitionReader.loadBeanDeFinitions(ConfigurationClassBeanDeFinitionReader.java:116)    at org.springframework.context.annotation.ConfigurationClasspostProcessor.processConfigBeanDeFinitions(ConfigurationClasspostProcessor.java:330)    at org.springframework.context.annotation.ConfigurationClasspostProcessor.postProcessBeanDeFinitionRegistry(ConfigurationClasspostProcessor.java:243)    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDeFinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)    at org.springframework.context.support.PostProcessorRegistrationDelegate.invokebeanfactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)    at org.springframework.context.support.AbstractApplicationContext.invokebeanfactoryPostProcessors(AbstractApplicationContext.java:611)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)    at org.springframework.boot.context.embedded.EmbeddeDWebApplicationContext.refresh(EmbeddeDWebApplicationContext.java:109)    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:961)    at org.springframework.boot.SpringApplication.run(SpringApplication.java:950)    at com.aharrison.hello.Application.main(Application.java:15)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:606)    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

我已经将代码重新删回到示例中显示的内容,但我仍然遇到异常.

我认为它可能与以下问题有关,虽然它标记为已关闭:

https://github.com/spring-projects/spring-boot/issues/2050

我对Spring不是很有经验,所以我无法完全理解正在讨论的内容.

这是我目前的课程:

Greeting.java:

package com.aharrison.hello;public class Greeting {    private final long ID;    private final String content;    public Greeting(long ID,String content) {        this.ID = ID;        this.content = content;    }    public long getID() {        return ID;    }    public String getContent() {        return content;    }}

GreetingController:

package com.aharrison.hello;import org.springframework.web.bind.annotation.RequestMapPing;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.atomic.AtomicLong;@RestControllerpublic class GreetingController {    private static final String template = "Hello,%s!";    private final AtomicLong counter = new AtomicLong();    @RequestMapPing("/greeting")    public Greeting greeting(@RequestParam(value="name",defaultValue="World") String name) {        return new Greeting(counter.incrementAndGet(),String.format(template,name));    }}

Application.java:

package com.aharrison.hello;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.EnableautoConfiguration;import org.springframework.context.annotation.ComponentScan;/** * Created by Adam on 12/26/2014. */@ComponentScan@EnableautoConfigurationpublic class Application {    public static voID main(String[] args) {        SpringApplication.run(Application.class,args);    }}

pom.xml中:

问题:

>在这种情况下导致异常的原因是什么?上面的代码是否有问题,或者问题环境是否相关?
>当异常显示“..如果您错误地将@ComponentScan放入默认包中”,这是它所指的默认包?这适用于目前的情况吗?

提前致谢.最佳答案当我运行你提供的代码时,一切正常.我必须做的唯一改变是在pom.xml中我添加了以下内容:

这使得整个Spring Boot机制成为可能,以便您能够启动应用程序.

请参阅下面的测试运行成功输出:

  .   ____          _            __ _ _ /\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \/  ___)| |_)| | | | | || (_| |  ) ) ) )  '  |____| .__|_| |_|_| |_\__,| / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot ::        (v1.2.0.RELEASE)2014-12-27 17:41:12.472  INFO 4065 --- [           main] com.aharrison.hello.Application          : Starting Application on My-MacBook-Pro.local with PID 4065 (/Users/wassgren/test/target/test-classes started by wassgren in /Users/wassgren/test/test-di)2014-12-27 17:41:12.506  INFO 4065 --- [           main] ationConfigEmbeddeDWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddeDWebApplicationContext@4a668b6e: startup date [Sat Dec 27 17:41:12 CET 2014]; root of context hIErarchy2014-12-27 17:41:13.407  INFO 4065 --- [           main] o.s.b.f.s.Defaultlistablebeanfactory     : OverrIDing bean deFinition for bean 'beannameVIEwResolver': replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandIDate=true; primary=false; factorybeanname=org.springframework.boot.autoconfigure.web.ErrorMvcautoConfiguration$WhitelabelErrorVIEwConfiguration; factoryMethodname=beannameVIEwResolver; initMethodname=null; destroyMethodname=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/ErrorMvcautoConfiguration$WhitelabelErrorVIEwConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandIDate=true; primary=false; factorybeanname=org.springframework.boot.autoconfigure.web.WebMvcautoConfiguration$WebMvcautoConfigurationAdapter; factoryMethodname=beannameVIEwResolver; initMethodname=null; destroyMethodname=(inferred); defined in class path resource [org/springframework/boot/autoconfigure/web/WebMvcautoConfiguration$WebMvcautoConfigurationAdapter.class]]2014-12-27 17:41:14.186  INFO 4065 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationautoConfiguration' of type [class org.springframework.boot.autoconfigure.dao.PersistenceExceptionTranslationautoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)2014-12-27 17:41:14.703  INFO 4065 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080/http2014-12-27 17:41:15.047  INFO 4065 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat2014-12-27 17:41:15.048  INFO 4065 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.0.152014-12-27 17:41:15.154  INFO 4065 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext2014-12-27 17:41:15.154  INFO 4065 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2651 ms2014-12-27 17:41:16.399  INFO 4065 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : MapPing servlet: 'dispatcherServlet' to [/]2014-12-27 17:41:16.404  INFO 4065 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : MapPing filter: 'hIDdenhttpMethodFilter' to: [/*]2014-12-27 17:41:16.404  INFO 4065 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : MapPing filter: 'characterEnCodingFilter' to: [/*]2014-12-27 17:41:16.907  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMapPingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddeDWebApplicationContext@4a668b6e: startup date [Sat Dec 27 17:41:12 CET 2014]; root of context hIErarchy2014-12-27 17:41:16.979  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMapPingHandlerMapPing : Mapped "{[/greeting],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public com.aharrison.hello.Greeting com.aharrison.hello.GreetingController.greeting(java.lang.String)2014-12-27 17:41:16.981  INFO 4065 --- [           main] s.w.s.m.m.a.RequestMapPingHandlerMapPing : Mapped "{[/error],custom=[]}" onto public org.springframework.http.ResponseEntity
总结

以上是内存溢出为你收集整理的java – IllegalStateException – @ComponentScanning springframework包全部内容,希望文章能够帮你解决java – IllegalStateException – @ComponentScanning springframework包所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1258371.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)