这是一种“什么是@Service注解”?问题,但用另一种方法。因为,我不确定这里发生了什么:
我有一个控制器类:
@Controller
public class GreetingController {
@Autowired
SomeBean someBean;
@MessageMapping("/msg")
public String msg() {
someBean.handleMsg();
return "";
}
}
我尝试从内部someBean.handleMsg
向目的地发送响应。像这样的一些事情:
public class SomeBean {
@Autowired
private SimpMessagingTemplate messagingTemplate;
public handleMsg() {
messagingTemplate.convertAndSend("/topic/someTopic", "Response");
}
}
有两个版本的配置。
- SomeBean 在.xml中配置:
喜欢:
< bean id="someBean" class="package.SomeBean"></bean>
- SomeBean 被注释为服务(在第一个它没有):
喜欢:
@Service
public class SomeBean{...}
- 请注意,在这两种情况下,注入等没有任何问题。在这两种情况下,客户端都成功订阅、发送消息和处理消息。
唯一 的区别是:
SomeBean
有注解时@Service
,成功响应客户端,没有注解时,客户端收不到响应消息,虽然没有任何异常。
这是问题:
- 在这种情况下,@Service 实际上是什么?有人可以解释一下这里发生了什么吗?