-
編寫流程(基於XML)
- 匯入jar包: 4+1 -> beans / core / context / expression | commons-logging
- 編寫目標類:dao和service
- spring配置檔案
- IoC:
<bean id="" class="">
- DI:
<bean><property name="" value="" ref=""></bean>
- 例項化方式:
- 預設構造
- 靜態工廠:
<bean id="" class="工廠類" factory-method="靜態方法"/>
- 例項工廠:
<bean id="" factory-bean="工廠id" factory-method="方法">
- 作用域:
<bean id="" scope="singleton|porotype">
- 生命週期:
<bean id="" class="" init-method="" destory-method="">
- 後處理bean BeanPostProssor介面,
<bean class="註冊">
對容器中所有的bean都生效
- 後處理bean BeanPostProssor介面,
- 屬性注入
- 構造方法注入:
<bean><constructor-arg index="" type="">
- setter方法注入:
<bean><property>
- p 名稱空間:簡化
<property> <bean p:屬性名="普通值" p:屬性名-ref="引用值">
注意生明名稱空間 - SpEL:
<property name="" value="#{表示式}">
- #{123} #{‘abc’}
- #{beanId.propName?methodName()}
- #{T(類).靜態方法|欄位}
- 集合
- 陣列
<array>
- List
<list>
- Set
<set>
- Map
<map><entry key="" value="">
- Propertes
<props><prop key="">....
- 陣列
- 構造方法注入:
- IoC:
- 核心api
- BeanFactory:延遲例項化bean,第一次呼叫getBean
- ApplicationContext 一般常用,功能更強
- ClassPathXmlApplicationContext 載入 classpath xml檔案
- FileSystemXmlApplicationContext 載入 指定碟符檔案,ServletContext.getRealPath();
-
註解
- 掃描含有註解的類
1.
<context:component-scan base-package="">
- 常見的註解
- Component 元件,任意bean
- WEB
- @Controller web層
- @Service service層
- @Repository dao層
- 注入 --》 欄位或者setter方法
- 普通值:@Value
- 引用值:
- 型別:@Autowired
- 名稱1:@Autowired @Qualifier("名稱")
- 名稱2:@Resource(“名稱”)
- 作用域:@Scope("prototype")
- 生命週期:
- 初始化:@PostConstruct
- 銷燬方法:@PreDestroy
- 掃描含有註解的類
1.
-
註解和xml混合使用
-
將所有的bean都配到xml中
<bean id="" class="">
-
將所有的依賴都使用註解
-
@Autowired
預設不生效。為了生效,需要在xml配置<context:annotation-config >
-
-
<context:component-scan base-package="com.adolph.web"></context:component-scan>
<context:annotation-config></context:annotation-config>
複製程式碼
1. 一般情況兩個註解不一起使用
2. 註解一,掃描含有註解(@Component等)類,注入註解自動生效
3. 註解為,只在xml和註解(注入)混合使用時,使注入註解生效。複製程式碼