为什么在Spring服务实现中使用@Service而不使用字符串参数和字符串参数calsses
答案 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{
...
}
希望有所帮助:)