Spring 註解詳解
阿新 • • 發佈:2019-01-31
為什麼使用註解?
當我們的專案越來越複雜時 配置檔案也會變得複雜 這樣不僅影響開發效率 還影響錯誤查詢
因此 Spring 提供了註解方式開配置bean
使用註解需要準備工作
1. 匯入 Spring架包
2. 引入約束檔案 context檔案
3. 開啟掃描註解 <context:component-scan base-package=" + 包名 + "></context:component-scan>
常用註解
@Component
給User類加上該註解就等同於在配置檔案添加了<bean name = "user" class = "..." >
如果沒有指定bean名字 預設是類名以小寫開頭
為其指定名字 @Component("name")
Spring 為了細化註解 引入了 Component 的三個子註解
@Service 對應Service業務邏輯
@Controller 對應Action Servlet層
@Repository 對應資料庫相關
這三個子標籤作用和 Component 作用一樣 更加語義化
@Scope(scopeName ="")
用來控制bean的作用域
候選片語有
prototype
singleton
request
session
@Value ("值")
為屬性注入值 可以寫在屬性上 也可以寫在set方法上 寫在屬性上會破壞物件的封裝性 建議寫在set上
@Autowired
自動裝配 可以將容器中對應的bean 自動注入到屬性中
@Qualifier
如果容器中有多個型別相同的bean 可以使用此註解 可以具體裝配到哪一個
一般和 @Autowired 搭配使用
@Resource(name="") 手動裝配 告訴spring 把哪一個bean 注入進來
@PostConstruct 物件構造後立即執行
@PreDestroy 物件銷燬前執行
Spring中的測試方法
// 想要在Spring中測試某個方法時需要了下面這兩個註解(加在類上)
// 執行測試時 會自動建立 spring 容器
@RunWith(SpringJUnit4ClassRunner.class)
// 指定配置檔案
@ContextConfiguration("classpath:applicationContext.xml")
// 當然 我們只在測試方類中這樣書寫 原因是Test環境中 類不會自動建立容器
// 因此 我們不能直接使用 @Autowired 其他的環境下可以直接使用
Spring AOP 程式設計
AOP為Aspect Oriented Programming的縮寫 意為面向切片程式設計
攔截器 實質是就AOP思想的一種體現 可以參考攔截器實現原理理解AOP