但是当应用程序尝试在客户端请求之后调用它时,自动装配的Bean为空。在applicationContext.xml中,我只有 组件扫描 设置。
In pom.xml:
<spring.version>4.1.0.RELEASE</spring.version>
<jersey.version>2.12</jersey.version>
@Component
@RequestScoped
@Path("/user")
public class UserREST {
@Autowired
private UserFacade userFacade;
@POST
@Path("/auth")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON})
public AuthResponse authorize(User user){
return userFacade.authorize(user); // Null is caught here
}
}
--
@Component
public class UserFacade {
public AuthResponse authorize(com.pushock.model.User user){
AuthResponse response = new AuthResponse();
response.setAuthorized(true);
return response;
}
}
我究竟做错了什么?
UPD: 这是我的pom.xml https://bitbucket.org/spukhov/memo-
ws/src/00724e00e3aa786f62fd0e43fe0606de6ae569df/pom.xml?at=master
无法将Spring托管的bean直接注入到JAX-RS类中,您需要使用Jersey扩展将其与Spring集成。
有一个Maven依赖关系,您没有 pom.xml
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.12</version>
</dependency>
请参阅Jersey文档:第22章。Spring
DI,
并且在页面底部,有一个示例到Spring集成 Github项目的链接。
我在您的项目中看到的另一个问题是您没有显示应如何加载和配置spring上下文。您需要在web.xml中进行配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
我有一个带有JSF2 end Spring4.3的webmodule。在backing bean中,我使用对jar的服务进行DI。在EAR模块中有WAR、带有Spring的JAR和带有Spring配置文件的JAR。 下面是片段: : 当我在Backing Bean中使用时,值为(没有任何异常)。我的JSF bean 你能帮帮我吗,拜托。
问题内容: 我有一个具有字段()的Spring 类(),但是该字段是我尝试使用它时所用的。日志显示该bean和该bean都在创建,但是每当我尝试在服务bean上调用该方法时,都会得到一个a 。Spring为什么不自动接线该领域? 控制器类: 服务等级: 应该自动连接的服务bean,但不是: 当我尝试时,出现以下异常: 问题答案: 本文向大家介绍为什么我的Spring @Autowired字段为空?
问题内容: 我的应用无法自动装配entityManagerFactory。 我的 applicationContext.xml : 我的 java课 : 题: 为什么entityManagerFactory为空? 问题答案: 为了让spring使用注释进行自动扭曲,您必须告诉spring。在您的xml配置中(假设您还没有element)添加一个。这将指示Spring应用程序上下文来扫描注解(如,,
问题内容: 是否通过@Autowired自动检测到?使用@Qualifier时是否按名称进行依赖项注入?我们如何使用这些批注进行setter和构造函数注入? 问题答案: 你可以与一起使用。实际上,如果发现模棱两可的bean类型,spring会询问你是否明确选择了bean,在这种情况下,你应该提供限定符 例如在以下情况下,有必要提供一个限定词 编辑: 在Lombok 1.18.4中,最终可以避免使用
问题内容: 在Spring会连接的类中使用 @Autowired的 优缺点是什么? 只是为了澄清,我是在专门谈论 @Autowired 注释,而不是XML的自动 装配 。 我可能只是不了解它,但是对我来说,这几乎就像是一种反模式- 您的类开始意识到它们与DI框架相关联,而不仅仅是POJO。也许我是惩罚的嘴,但我喜欢为bean设置外部XML配置,并且我喜欢使用显式的接线,因此我确切知道在哪里接线。
当我尝试使用@Autowired注入服务类时,我遇到了一些问题 我的Rest控制器: 我的服务: 界面: 抽象4眼服务: 我的堆栈跟踪: 我试图注入定居点服务,但它抛出java.lang.非法参数例外:无法设置项目.test.rms.服务.定居点类型服务字段项目.test.rms.controller.SettlementTypeController.service到 com.sun.proxy.