无法实例化 Spring MVC 控制器



我是春天的新手,有一个简单的问题。我用一个简单的构造函数编写了一个简单的控制器,注释如下。

@Controller
public class LoginController
{
   private LoginService loginService;
   @Inject
   public LoginController(LoginService loginService)
   {
      System.out.println("LoginController constructor - initializing  login service");
      this.loginService = loginService;
   }

当我尝试在浏览器中访问我的 Web 应用程序时,出现以下错误: 未找到默认构造函数;

当我用@Autowired注释替换@Inject注释时,它可以工作。 谁能解释为什么? 我读到的所有内容都说它们具有相同的行为。 我正在使用Tomcat 6.0.43。

另外,下面是我的弹簧调度程序servlet xml:

<mvc:resources mapping="/resources/**" location="/resources/" />    
<mvc:annotation-driven/>                                            
<context:component-scan base-package="com.rockwell_collins.webquery"/>  
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="viewClass"   value="org.springframework.web.servlet.view.JstlView"/>
   <property name="prefix"    value="/WEB-INF/views/"/>
   <property name="suffix"    value=".jsp"/>
</bean>

您必须从运行时类路径中缺少 JavaEE Inject API。Spring 只会在类路径中找到类时才查找@Inject

你可以从这里的 Maven 获取它,并将其添加到你的运行时类路径中(手动或通过依赖项)。

最新更新