javascript
Spring文档学习
Spring文檔學習
參考Spring Framework Documentation學習
1. IoC 容器
1.1 容器實例化
<beans><import resource="services.xml"/><import resource="resources/messageSource.xml"/><import resource="/resources/themeSource.xml"/><bean id="bean1" class="..."/><bean id="bean2" class="..."/> </beans>注意:這里不建議resource那里使用classpath:URL的寫法,因為運行時解決進程會選擇最近的classpath根,然后查找它的父文件夾。類路徑配置的改變可能會導致錯誤的路徑,找不到對應的資源。
1.2 使用容器
ApplicationContext是高級工廠的接口,能夠維護不同bean及其依賴項的注冊表。
獲取實例:
ApplicationContext T getBean(String name, Class<T> requiredType)
最靈活的變種是GenericApplicationContext與reader相結合(如XmlBeanDefinitionReader)
使用:
GenericApplicationContext context = new GenericApplicationContext(); new XmlBeanDefinitionReader(context).loadBeanDefinitions("services.xml", "daos.xml"); context.refresh();1.3 Bean Overview
在容器內,bean對象表示為BeanDefinition,其中包含以下元數據:
- 包限定的類名:通常情況是bean的實現類
- Bean行為配置元素,指明bean在容器中如何表現,像scope,生命周期回調等等
- 引用其他bean(稱為合作者或依賴)
- 新創建的對象里設置其他配置
BeanDefinition有以下屬性:
| Name |
| Scope |
| Constructor arguments |
| Properties |
| Autowiring mode |
| Lazy initialization mode |
| Initialization method |
| Destruction Method |
ApplicationContext允許由用戶創建的對象的注冊,通過ApplicationContext的getBeanFactory()方法返回DefaultListableBeanFactory。通過這個BeanFactory的registerSingleton()和registerBeanDefinition()方法。
需要ASAP注冊Bean元數據和手動提供的單例實例,以便容器在自動裝配(auto wire)和其他內省步驟期間正確推理它們。
1.3.1 Naming Beans
Bean命名約定:小寫字母開頭,駝峰命名。
Spring掃描時,對那些沒有命名的bean生成名字,遵循以下原則:采用simple class name,首字母小寫。但是特殊情況下,如果有多個字符,并且第一和第二個字母都是大寫,則原有的寫法會被保留。
當有多個系統的時候,簡單的使用xml-based 即可完成別名操作。
1.3.2 實例化beans
bean定義實際上是創建一個或多個對象的配方。
class屬性的兩種使用方式:
內部類的話,class屬性需要寫二進制代碼名,如:com.example.SomeThing$OtherThing
利用構造函數實例化
However, depending on what type of IoC you use for that specific bean, you may need a default (empty) constructor.
利用靜態工廠方法實例化
如:
<bean id="clientService"class="examples.ClientService"factory-method="createInstance"/>利用對象工廠方法實例化
例如:
<!-- the factory bean, which contains a method called createInstance() --> <bean id="serviceLocator" class="examples.DefaultServiceLocator"><!-- inject any dependencies required by this locator bean --> </bean><!-- the bean to be created via the factory bean --> <bean id="clientService"factory-bean="serviceLocator"factory-method="createClientServiceInstance"/>注意:一個工廠類也可以包含多個工廠方法
這種方法表明工廠bean本身可以通過依賴注入(DI)進行管理和配置
轉載于:https://www.cnblogs.com/studentytj/p/10639780.html
總結
以上是生活随笔為你收集整理的Spring文档学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django xadmin 1不在可用的
- 下一篇: 为什么win10重装黑屏怎么办 win1