我在业余时间从事一个项目,在这个项目中,我被要求使用 Spring Boot。我以前不熟悉 Spring Boot,我尝试在 stackoverflow 和 Google 上搜索,但我似乎无法理解针对我的问题的不同解决方案是如何工作的。
首先,这是我的错误信息:
com.project.example.controller.VerverController 中构造函数的参数 0 需要一个无法找到的类型为“com.project.example.dao.VerverDao”的 bean。
行动:
考虑在您的配置中定义一个“com.project.example.dao.VerverDao”类型的 bean。
经过一番阅读,我明白这可能是因为 Spring Boot 不扫描此类/接口。所以我尝试添加 ComponentScan,但没有成功。
我试图将 VerverDao 从接口转换为类并使用 bean 注释注册一个 bean。仍然没有运气。我试图将 VerverDao 从 dao 包移动到根包(与 Main 类相同),但仍然没有运气。
因此,如果有人可以帮助我理解错误消息,那将是我的一天。
这是我的结构:
这是我的代码:
可能有些注释也是错误的,因为我不习惯 Spring Boot,在此先感谢您纠正我对这些的使用。 另外值得一提的是,我在这个项目中也使用了 Lombok。
主程序
@ComponentScan("com.gambinomafia")
@SpringBootApplication
public class Main extends SpringBootServletInitializer {
public static void main(String[] args) {
new Main().configure(new SpringApplicationBuilder(Main.class)).run(args);
}
}
配置文件
@Component
public class Configuration extends ResourceConfig {
public Configuration() {
register(VerverResourceImpl.class, VerverResource.class);
register(VerverController.class);
register(VerverDao.class);
}
}
VerverResource.java
@Resource
@Path("verver")
public interface VerverResource {
@GET
@Path("/{userid}")
@Produces(MediaType.APPLICATION_JSON)
String getRefferingUrl(@PathParam("userid") int userid);
}
VerverResourceImpl.java
@AllArgsConstructor(onConstructor = @__({@Inject}))
public class VerverResourceImpl implements VerverResource {
private VerverController controller;
@Override
public String getRefferingUrl(int userid) {
log.info("Collection reciever url for user id: {}", userid);
return controller.getRefferingUrl(userid);
}
}
SMILET
白衣非少年
相关分类