一、@service("serviceName"): 表示給當前類命名一個別名,方便注入到其餘類中;java
二、@service:不加的話,默認別名就是當前類名,可是首字母小寫spring
三、這些註解都是Bean,Spring容器託管ui
- 持久層:@Repository
- 業務層:@Service
- 控制層:@Controller
- 中立類:@Component (對那些比較中立的類進行註釋)
四、配置自動掃描便可spa
<context:annotation-config/> <context:component-scan base-package=」com.eric.spring」>
- @Scope註解能夠改變其做用範圍
- spring中的Bean默認都是單例
五、@Autowired 與@Resource的區別:.net
(1)@Resourcecode
- @Resource(這個註解屬於J2EE的)
- @Resource的做用至關於@Autowired
- @Resource默認按 byName自動注入
- 若是註解寫在setter方法上默認取屬性名進行裝配
- 當找不到與名稱匹配的bean時才按照類型進行裝配
- 若是name屬性一旦指定,就只會按照名稱進行裝配
- Spring將@Resource註解的name屬性解析爲bean的名字,type屬性則解析爲bean的類型
- 若是使用name屬性,則使用byName的自動注入策略
- 若是使用type屬性時則使用byType自動注入策略
- 若是name屬性、type屬性都不,經過反射機制使用byName自動注入策略
(2)兩者均可以用來裝配beancomponent
(3)均可以寫在字段上,或寫在setter方法上xml
(4)@Autowired對象
- @Autowired默認按類型裝配
- 這個註解是屬業spring
- 默認狀況下必需要求依賴對象必須存在
- 若是要容許null值,@Autowired(required=false)
- @Qualifier註解(qualifier的意思是合格者)
- @Qualifier註解 應對單接口多個類實現的狀況
- @Qualifier的參數名稱必須爲咱們以前定義@Service註解的名稱之一
@Autowired @Qualifier("service")//@Qualifier的參數名稱必須爲咱們以前定義@Service註解的名稱之一 EmployeeService employeeService;