Spring 輕量級 開源 內建架構
設計圖 對象的建立 和 組裝 ioc di 對象bean 的定義
代碼調用之前 之後 前後 都有 織入代碼 aop 面向切面 事務處理
SpringMVC SpringBoot
使用 步驟
1.導入包 和 配置檔案
項目 右鍵--> myeclipse -->add Spring capability... 一頓下一步
定義類 applicationContext.xml 中配置
<bean id="" class="" >
<property name="" value="">
注意 name 實際調用 set 方法
</bean> 節點
如何擷取
ApplicationContext acc=new ClassPathXmlApplicationContext("/applicationContext.xml");
acc.getBean("id");
bean節點的作用域 Scope 預設是 SingleTon 單例模式
即 通過getBean 方式得到的 都是同一對象
scope="prototype" 原型模式 每次都是新的對象

構造函數 指派
getBean(id) 通過id 比對 需要 bean節點的 id 唯一
getBean(類.class) 通過類型比對 需要bean 節點 的類型唯一
// IOC 控制反轉 對象的 建立 交由 spring 管理
// DI 依賴注入 對象之間的引用 指派 交由spring 管理
p屬性
<bean id="hlj2" class="com.pojo.Province" p:屬性="值" p:屬性-ref="beanid">
</bean>
p 引入
xmlns:p="http://www.springframework.org/schema/p"
引入 其他 spring 的配置檔案
<import resource="pp.xml"/>
外部引入 導入 properties 屬性檔案
<context:property-placeholder location="位置" ></ context:property-placeholder>
自動 注入 autowire
byName 通過 屬性名稱 和 bean id 的 比對 完成自動注入
byType 通過 屬性類型 和 bean 節點 的類型 比對完成注入 但 該類型隻能有一個 bean 以上都不建議使用
bean 對象的 生命周期
類 實作 BeanPostProcessor 攔截 bean 對象的 初始化 過程
spring El 表達式
${ } 将屬性檔案中的 内容 讀取顯示
#{ 值,其他bean的 屬性 值 }
Spring 注解 @
bean 建立 定義 擷取 依賴關系
配置 --> 零配置
@Component
@Controller 用于 定義 C 層 的bean
@Service 用于 定義 service 的bean
@Repository 用于定義 持久層 dao
與 bean 相同含義 意義 一樣
<bean id="abc">
使用
1.配置 包掃描器
<context:component-scan base-package="基本包,包1,包2" >
2.在類上定義 注解
@Respository(value="bean 的id ") 不寫 預設 是 類名首字母小寫
public class Student{
}
bean 之間的依賴注入
借助于 @Autowired( require)
@Autowired 預設 先按 屬性名稱進行比對 規則為 屬性名 比對 bean 的 id
如果沒有 則按 類型 進行比對
可以 通過@Qualifier(value="abc") 指定 bean id 是 abc 的 對象 注入給course 屬性
@Resource(name="abc") 預設 通過 屬性名稱比對 也可按照類型比對
掃包 的注解 <context:component-scan base-package=""></ context:component-scan>
定義bean 的 四個注解 @Component @Controller @Service @Repository
自動注入的注解
@Autowired
@Qulifier
@Resource