我在这里阅读了很多关于这种问题的内容,但似乎我的代码很好但是autowire不能正常工作:
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)}
这是我的控制器的代码:
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 } }
和接口的代码:
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); } }
所以我不明白,对我来说,这应该做的工作,但自动装配不起作用.
帮助将不胜感激:)
@SpringBootApplication
在使用它的类中仅扫描包(递归).InteractionBanqueImpl
在另一个包中.
使用Application
类创建一个包'app' ,然后移动到它controllers
和其他包.应该没事.