@Service是标记在接口上还是实现类上?

@Service是标记在接口上还是实现类上?

阅读 28.4k
4 个回答

@Service注解是标注在实现类上的,因为@Service是把spring容器中的bean进行实例化,也就是等同于new操作,只有实现类是可以进行new实例化的,而接口则不能,所以是加在实现类上的。

@Service注解、@Controller注解以及@Repository注解都是Spring中的注解,加上这些注解的目的是可以区分JavaEE三层架构中的三个不同层次,其目的都是控制反转,将Java对象交给Spring容器创建。@Service注解是标注在实现类上的。请看下面的代码:

@Service
public class ProductInfoServiceImpl implements ProductInfoService {
    // 代码实现
}
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Service {
    String value() default "";
}

以上是@Service注解的代码。它实际上起作用的就是@Component,也就是说只是个普通的bean。所以肯定是标注具体类的啊!

标记类上 目的是new对象

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏