我正在工作的一个项目在我的业余时间,在这个项目我已被要求与Spring靴工作。我以前对Spring Boot并不熟悉,我试着在stackoverflow和Google上搜索这里,但我似乎无法理解针对我的问题的不同解决方案是如何工作的。
首先,这是我的错误信息:
com.project.example.controller.VerverController中的构造函数参数0需要类型为“com.project.example.dao.Ververdao”的bean,但找不到该bean。
所以,如果有人能帮助我理解错误信息,这将使我的一天。
这是我的结构:
这是我的代码:
@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);
}
}
@Resource
@Path("verver")
public interface VerverResource {
@GET
@Path("/{userid}")
@Produces(MediaType.APPLICATION_JSON)
String getRefferingUrl(@PathParam("userid") int userid);
}
@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);
}
}
@Controller
@AllArgsConstructor
public class VerverController {
private VerverDao ververDao;
public String getRefferingUrl(int userid) {
User user = ververDao.getUsername(userid);
if (user.getUsername().isEmpty()) {
throw new NotFoundException("Did not find any user with id " + userid);
}
return "<url-to-site>/?verv=" + user.getUsername();
}
}
@AllArgsConstructor
public class VerverDao {
@Value("spring.datasource.url")
private String dbcon;
public User getUsername(int userid) {
Jdbi jdbi = Jdbi.create(dbcon);
return jdbi.withHandle(handle -> handle.createQuery(
"SELECT id, brukernavn FROM t_user WHERE id = :id")
.bind("id", userid)
.mapToBean(User.class)
.findOnly());
}
}
首先,您在应用程序类中使用错误的包设置@componentscan
。
@ComponentScan("com.gambinomafia")
@SpringBootApplication
而且,根据图片,它必须是:
@ComponentScan("com.project.example")
@SpringBootApplication
编辑:@m.deinum对@componentscan
的使用
@Controller
public class VerverController
private VerverDao ververDao;
@Autowired
public VerverController(VerverDao ververDao) {
this.ververDao = ververDao;
}
}
角色JAVA 任务JAVA 使用者JAVA RoleRepository.java TaskRepository。JAVA 用户库 登录注册应用程序。JAVA application.properties http://maven.apache.org/xsd/maven-4.0.0.xsd" 波姆。xml [错误]测试运行:1,失败:0,错误:1,跳过:0,耗时:2.941秒
本机Spring Boot自动配置(例如one)也可以检测主类中声明的bean(例如注释的方法)。 如何对主类中声明的bean进行正确的bean检测? 编辑
我试图在Spring Boot中创建一个简单的REST服务。在我使用CrudRepository之前,一切都很好。现在我得到了这个错误- ***应用程序启动失败 描述: 公司中的现场er。Spring靴。io。受雇者EmployeeService需要“company”类型的bean。Spring靴。io。受雇者找不到EmployeeRepo“”。 措施: 考虑定义一个“company”类型的bea
我正在做SpringBoot项目,并遵循一些测试SpringBoot的说明。 当我尝试将mysql DB与项目连接时,服务找不到映射器。 我不知道为什么它找不到映射器... 这是服务代码和 这是映射程序代码 下面的错误是 我将发布我的包裹设置的图片。。。
我在Spring boot配置(用@Configuration注释)类中定义了这样一个Bean: MyRegistry如下所示: 现在,在另一个带有@Component的类中,我有@Autowired myRegistry,并按如下方式使用它: 启动Spring-Boot应用程序时我没有收到任何错误,但当应用程序运行时,Handler1的方法无法访问。 想知道我在这里做错了什么。我可能搞砸了注释的