gpt4 book ai didi

java - Spring Autowired 服务和 Controller 不工作

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:19 25 4
gpt4 key购买 nike

我在这里阅读了很多关于此类问题的信息,但似乎我的代码很好,但 Autowiring 不起作用:

Error creating bean with name 'optionController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private service.InteractionBanque controllers.OptionController.interactionBanque; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [service.InteractionBanque] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

这是我的 Controller 的代码:

package controllers;


package controllers;

import javax.annotation.Resource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import model.Banque;
import model.Client;
import service.InteractionBanque;
import serviceimpl.InteractionBanqueImpl;

@Controller
public class OptionController {

@Autowired
private InteractionBanque interactionBanque;


@RequestMapping(value="/virement",method=RequestMethod.GET)
public String index(Model model, @ModelAttribute Client client) {
model.addAttribute("virement", new Virement());
return "virement";
}
@RequestMapping(value="/virement",method=RequestMethod.POST)
public String index(@ModelAttribute Virement virement, Model model) {

return "options";
}

}

还有我的服务代码:

package serviceimpl;

import java.util.HashMap;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;

import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;

import dao.BanqueDAO;
import daoimpl.BanqueDaoImpl;
import model.Banque;
import model.Client;
import service.InteractionBanque;
import utils.SendRequest;

@Service
public class InteractionBanqueImpl implements InteractionBanque {
public static final int END_ID_BANQUE = 5;
public static final String LOGIN_URL = "/account";

public boolean connecter(Client client) {
some code
}

}

接口(interface)代码:

package service;

public interface InteractionBanque {
boolean connecter(Client client);
}

我的 Application 类定义了 @SpringBootApplication 应该用来连接所有东西:

package controllers;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

所以我不明白,对我来说这应该可以工作,但 Autowiring 不起作用。

帮助将不胜感激:)

最佳答案

@SpringBootApplication 仅在使用它的类中(递归地)扫描包。 InteractionBanqueImpl 在另一个包中。

Application 类创建一个包 'app',然后将 controllers 和其他包移动到它。应该没问题。

关于java - Spring Autowired 服务和 Controller 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com