天天看點

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

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"  原型模式  每次都是新的對象

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期
Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

構造函數 指派

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

getBean(id) 通過id 比對      需要 bean節點的 id 唯一

getBean(類.class) 通過類型比對   需要bean 節點  的類型唯一

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

// IOC  控制反轉   對象的 建立 交由 spring 管理

// DI   依賴注入  對象之間的引用 指派  交由spring 管理  

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期
Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

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>

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

自動 注入   autowire

byName  通過 屬性名稱 和 bean id 的 比對 完成自動注入

byType  通過 屬性類型 和 bean 節點 的類型  比對完成注入 但 該類型隻能有一個 bean   以上都不建議使用

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

bean 對象的 生命周期

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

 類 實作 BeanPostProcessor    攔截 bean 對象的 初始化 過程

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期
Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期
Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

spring  El 表達式

   ${ } 将屬性檔案中的 内容 讀取顯示  

   #{ 值,其他bean的 屬性 值 }

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

 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)

Spring基礎架構搭建Spring   輕量級 開源   內建架構自動 注入   autowirebean 對象的 生命周期

@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