这是我从spring网站执行spring应用程序示例时遇到的错误。我试图找到解决办法,但没有成功。请帮忙。我想这相当简单,但我无法理解。
文件Application.java
package hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.*;
import org.springframework.context.support.AbstractApplicationContext;
@Configuration
@ComponentScan
public class Application {
@Bean
MessageService mockMessageService(){
return new MessageService() {
public String getMessage() {
return "Hello World!";
}
};
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext();
((AbstractApplicationContext) context).refresh();
MessagePrinter printer = context.getBean(MessagePrinter.class);
printer.printMessage();
}
}
MessagePrinter.java
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class MessagePrinter {
final private MessageService service;
@Autowired
public MessagePrinter(MessageService service){
this.service = service;
}
public void printMessage(){
System.out.println(this.service.getMessage());
}
}
信息服务。JAVA
package hello;
public interface MessageService {
String getMessage();
}
波姆。xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>gs-maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>gs-maven</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>hello.Application</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.5.RELEASE</version>
</dependency>
<!-- tag::joda[] -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.2</version>
</dependency>
<!-- end::joda[] -->
</dependencies>
</project>
错误:
2015年3月2日上午10:50:01组织。springframework。上下文注释。AnnotationConfigApplicationContext prepareRefresh信息:刷新组织。springframework。上下文注释。AnnotationConfigApplicationContext@c1b531:启动日期[Mon Mar 02 10:50:01 IST 2015];线程“main”组织中上下文层次结构异常的根。springframework。豆。工厂NoSuchBeanDefinitionException:在org上没有定义[hello.MessagePrinter]类型的合格bean。springframework。豆。工厂支持DefaultListableBeanFactory。org上的getBean(DefaultListableBeanFactory.java:371)。springframework。豆。工厂支持DefaultListableBeanFactory。org上的getBean(DefaultListableBeanFactory.java:331)。springframework。上下文支持AbstractApplicationContext。getBean(AbstractApplicationContext.java:968)位于hello。应用main(Application.java:23)
请让我知道我错过了什么
也有同样的问题。通过添加@ComponentScan({“com.packageName”})注释进行修复。
看着这个样本
http://www.tutorialspoint.com/spring/spring_java_based_configuration.htm
行ApplicationContext context=new AnnotationConfigApplicationContext()
接受入口点bean的一个参数。
所以你的代码应该是
ApplicationContext context =
new AnnotationConfigApplicationContext(MessagePrinter.class);
如果您想注册几个bean,那么您可以使用
注册
或使用扫描
来扫描包
前面我们一直使用字符串(String)作为错误消息。实际上,字符串作为错误类型是存在一些局限的。下面是友好的错误类型标准。字符串(String)很好地实现了前两点,但无法做到后两点: Rust 允许自定义错误类型。一般而言,一个“良好”的错误类型: 使用相同类型来表达不同的错误 给用户提供友好的错误信息 方便和其他类型比较 Good: Err(EmptyVec) Bad: Err("Please
为什么我会犯这个错误。我该怎么解决呢? 谢谢
当试图用包含所有上下文配置的抽象类运行stepdefs时,spring看到2个不同的beans parent和step def 我使用的是Spring Booking版本:2.6.4,JUnit 5和Cucumber版本7.2.3 异常堆栈跟踪: io.cucumber.core.runtime.CucumberExecutionContext.runTestCase:没有可用的“Cucumber
我尝试自动连接我的mapstruct mapper: 这是可行的: 但是为什么我不能使用: 我得到以下错误: 导致原因:org . spring framework . beans . factory . nosuchbeandidefinitionexception:没有类型为“pl . comp . window . application . mapper . windowdtomapper
问题内容: 我正在尝试构建一个全新的Spring Framework 4.0项目,而没有所有神奇的东西,而只是简单地将它踢过去。 我在这里关注该教程:http : //spring.io/guides/tutorials/data/并取得了一些成功。我只是停留在这一点上。 当我运行此单元测试时,得到以下堆栈跟踪: 根据观察和研究,似乎是在告诉我有两个EntityManager类。第一个来自hibe
我通过使用Spring和Hibernate创建实体、服务和服务的JUnit测试开始了我的项目。所有这些都很管用。然后,我添加了spring-mvc来使用许多不同的分步教程来制作这个web应用程序,但是当我试图使用注释制作Controller时,我在部署期间从Glassfish得到错误。我想由于某种原因Spring没有看到我的服务,但经过多次尝试,我仍然无法处理它。 /webapp/web-inf/