3.2.3 服务层类实现
我们在spring-boot-book-v2项目下继续开发服务层接口类和实现类:AyUserService和AyUserServiceImpl类,它们分别存放在目录/src/main/java/com.example.demo.service和/src/main/java/com.example.demo.service.impl下。具体代码如下:
接口类AyUserService定义了4个接口,findById和findAll用来查询单个和所有数据,Delete用来删除数据,Save同时具备保存和更新数据的功能。接口实现类AyUserServiceImpl代码如下:
• @Service:Spring Boot会自动扫描到@Component注解的类,并把这些类纳入进Spring容器中管理。也可以用@Component注解,只是@Service注解更能表明该类是服务层类。
• @Component:泛指组件,当组件不好归类的时候,可以使用这个注解进行标注。
• @Repository:持久层组件,用于标注数据访问组件,即DAO组件。
• @Resource:这个注解属于J2EE的,默认按照名称进行装配,名称可以通过name属性进行指定。如果没有指定name属性,当注解写在字段上时,默认取字段名进行查找。如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。具体代码如下:
• @Autowired:这个注解是属于Spring的,默认按类型装配。默认情况下要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false),如果想使用名称装配可以结合@Qualifier注解进行使用。具体代码如下: