spring boot 开发中的常用注解

1   @Data    设置 get set 方法

2   @Autowired和@Resource都可以用于标记自动装配,作用一样但有些区别。
@Autowired默认按类型匹配
但这样通过@Autowired有可能找到多个同类型的bean,在这种情况下可以使用@Qualifier注解来找到要装配的bean,例如

@Autowired(require = true) // 一定要找到匹配的bean,否则抛出异常,缺省为true
@Qualifier("beanName")

所以,在用@Service注解业务接口实现类Impl而没有给予它name的情况下,如果只写@Autowired的话,需要保证业务接口只有一个实现类。在有多个实现类的情况下则要给予name(@Service不给予名字的情况下实现类bean的名字默认为实现类名的小驼峰)并使用@Qualifier。

@Resource默认按名匹配,找不到时按类型匹配

@Resource
TestService testService; // 默认查找名字为testService的bean

public interface TestService {}

@Service // 默认名字为 "testServiceImpl"
public class TestServiceImpl {}

如以上代码所示,@Resource实际上会先去找名字为testService的bean,很显然这个名字的bean不存在,之后@Resource才会按类型匹配去查找TestService的实现类。
因此不给予名字的话,@Resource会去查找两次,最好是这样写

@Resource(name = "testServiceImpl")
TestService testService;

3 @service与@repository是用于声明一个类是一个bean的,从而不必在spring配置文件中配置<bean>标签,提高编程效率。@service用于service层,@repository用于持久(dao)层

posted @ 2022-04-24 11:00  专心写代码  阅读(105)  评论(0编辑  收藏  举报