根据我在Spring中的经验<context:component-scan base-package="<package name>"/>
在应用程序上下文中已经足够了,并且通过@Autowired
bean可以注入。
但是现在我正在使用Spring 4.3并通过xml配置应用程序上下文。 然后bean为null(未注入)。
如果我在应用程序上下文中删除评论,则bean将可用。
请在此处查看xml和我的资源类。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<context:component-scan base-package="com.mcp.rest.jersy2.service.*"/>
<!--
<bean id ="userService" class = "com.mcp.rest.jersy2.service.UserServiceImpl"></bean>
-->
@Path("/service")
@Component
public class UserServiceResource {
private static final String text = "Message from Server :%s ";
@Autowired
private UserService userService;
@GET
@Path("{name}")
@Consumes(MediaType.TEXT_PLAIN)
public Response getMsg(@PathParam("name") String name) {
String response = String.format(text, name);
return Response.status(Response.Status.OK).entity(response).type(MediaType.TEXT_PLAIN).build();
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
问题是什么?
服务类:
package com.mcp.rest.jersy2.service;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService
{
}
IGNORE NOW
我的组件扫描问题。我需要覆盖豆子注射的包装。
我减少了
<context:component-scan base-package="com.mcp.rest.jersy2.service.*"/>
到
<context:component-scan base-package="com.mcp.rest.jersy2.*"/>