springboot教程-@Service详解

介绍

对于 service 层的类,在类上用 @Service 注解声明

源代码

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Service {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
}

使用

只能声明类

value属性

相当于实例化该类的 变量名,如下:

StudentSrvImpl studentSrvImpl=new StudentSrvImpl();

value 属性的值,相当于上面代码的 studentSrvImpl ,通过该 名字 进行注入

如果不指定,默认值为 当前类名(首字母小写) ,具体看下面例子

例子

实现IUserService接口

在企业开发中,多使用接口,其实可以不用接口

public interface IStudentService {
    public List<Student> query();
    public void save(Student student);
}

实现UserSrvImpl类

@Service
public class StudentSrvImpl implements IStudentService {
    public StudentSrvImpl(){
        System.out.println("StudentSrvImpl构造方法");
    }
    @Override
    public List<Student> query() {
        System.out.println("调用 StudentSrvImpl 的query()方法");
        return null;
    }
    public void save(Student student){
        System.out.println("调用 StudentSrvImpl 的save()方法");
        System.out.println(student.toString());
    }
}

类名上使用 @Service 注解,没有指定 value 属性,那么默认值为:userSrvImpl ,可通过该名字进行注入


原文出处:/show_1IXixNd53pi.html