为什么在Spring使用@Service和为什么@Service(“”)使用字符串参数?

时间:2014-08-12 06:15:47

标签: spring

为什么在Spring服务实现中使用@Service而不使用字符串参数和字符串参数calsses

2 个答案:

答案 0 :(得分:5)

没有参数的

@Service有一个默认服务名称,通常它与您的类名相同,但第一个字符是小写。

例如,

@Service
class LoadService {}

默认服务名称为 loadService

@Service(value = "serviceName")明确指定服务名称。

例如,

@Service(value = "myServiceName")
class LoadService {}

服务名称为 myServiceName

来自春季文档:

  

该值可能表示对逻辑组件名称的建议,         在自动检测组件的情况下变成Spring bean。

因此,当一个项目有两个以上的名称相同并且都有@Service注释的类时,您应该使用带有参数的@Service

答案 1 :(得分:1)

您可以在此处阅读文档:http://docs.spring.io/spring-framework/docs/2.5.6/api/org/springframework/stereotype/Service.html

  

该值可能表示对逻辑组件名称的建议,将转换为a   自动检测组件的情况下的Spring bean

     

返回:建议的组件名称(如果有)

     

默认值:""

所以,你可以像这样声明一个@Service:

@Service
public class AppleService{
    ...
}

将根据BeanNameGenerator分配bean名称(在此示例中,它将是 appleService )。或者您可以定义要为bean提供的名称:

@Service("appleSrv")
public class AppleService{
   ...
}

希望有所帮助:)