介绍
对于 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 ,可通过该名字进行注入
