我的Spring MVC Web应用html" target="_blank">程序中有这个控制器,
@Controller
@RequestMapping("/spittles")
public class SpittleController {
private SpittleRepository spittleRepository;
@Autowired
public SpittleController(SpittleRepository spittleRepository) {
this.spittleRepository = spittleRepository;
}
public String spittles(Model model) {
model.addAttribute(spittleRepository.findSpittles(Long.MAX_VALUE, 20));
return "spittles";
}
}
其中SpitleRepository是一个接口:
public interface SpittleRepository {
List<Spittle> findSpittles(long max, int count);
}
其中,SpitleRepository的实现如下:
@Component
public class SpittleRepositoryImpl
implements SpittleRepository {
@Override
public List<Spittle> findSpittles(long max, int count) {
List<Spittle> spittles = new ArrayList<Spittle>();
for (int i = 0; i < count; i++) {
spittles.add(new Spittle("Spittle" + i, new Date()));
}
return spittles;
}
}
即使我已经自动装配,我得到:
组织。springframework。豆。工厂UnsatifiedDependencyException:创建名为“SpitleController”的bean时出错,该bean在文件[C:\java\Workspace\default.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Chapter5 BuildingSpringWebApplications\WEB-INF\classes\org\spittr\WEB\SpitleController.class]中定义:通过索引为0的构造函数参数表示的未满足的依赖关系[org.spittr.data.SpittleRepository]::未找到符合依赖项类型[org.spittr.data.SpittleRepository]的合格bean:应至少有1个bean符合此依赖项的autowire候选。依赖项注释:{};嵌套异常为org。springframework。豆。工厂NoSuchBeanDefinitionException:找不到符合依赖关系的[org.spittr.data.SpittleRepository]类型的bean:应至少有一个bean符合此依赖关系的autowire候选。依赖项批注:{}
其中java配置文件为:
@Configuration
@EnableWebMvc // Enable Spring MVC
@ComponentScan(basePackages={"org.spittr"})
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver =
new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer
configurer) {
/* configure static content handling */
configurer.enable();
}
}
项目结构如下:
RootConfig:
@ComponentScan(basePackages = { "org.spittr" },
excludeFilters = { @Filter(type = FilterType.ANNOTATION,
value = EnableWebMvc.class) })
public class RootConfig {
}
SpitrWebAppInitializer。java:
public class SpittrWebAppInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { RootConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
// Specify configuration class
return new Class<?>[] { WebConfig.class };
}
@Override
protected String[] getServletMappings() {
// Map DispatcherServlet to /
return new String[] { "/" };
}
}
老实说,我不知道为什么清洁和建设解决了这个问题。
我认为问题是要扫描的包-它没有正确定义,尝试切换到:
main.java.org.spittr
或者使用下面的方法来代替——我认为它不太容易出错。
basePackageClasses = {Spittle.class}
问候,迈克尔
当我在实现的bean中取消对接口的注释时,服务器启动时不会出现任何错误。我错过了什么?
有没有可能让一个Spring Bean实现两个接口,并能够使用任何一个接口自动连接Bean? 一个实现两个服务的类 我正在获取: 原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到依赖项[ServiceB]的[ServiceB]类型的合格bean:需要至少有一个bean可以作为此依赖项的自动候选项。依赖项批注
问题内容: 背景: 我有一个Spring 2.5 / Java / Tomcat应用程序。下面的bean在整个应用程序中的许多地方都使用过 以下是新的bean: 第一个bean的配置如下(包含了软件包中的所有bean) 第二个(新)bean是单独配置的 启动服务器时,这(当然)会导致异常: 从试图像这样自动装配bean的类中 因为有两个bean实现相同的接口。 问题: 是否可以配置Bean,以便
我有一个spring 2.5/Java/Tomcat应用程序。下面有一个bean,在整个应用程序的许多地方都使用了这个bean 和以下新bean: 第一个bean是这样配置的(包中的所有bean都包含在内) 第二个(新的)bean是单独配置的 这会导致(当然)启动服务器时出现异常: 嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitio
堆栈跟踪
我正在尝试实现一个quarkus-extension用于授权/认证。我使用现有的< code > quar kus-small rye-jwt-abx -扩展作为例子。一切似乎都很好,除了我不能注入< code>Principal: 我得到了 对 java.security.主体和限定符类型未满足的依赖关系 [@Default] 注入