SpringIOC

配置bean

class: bean 的全類名,通過反射的方式在IOC容器中創(chuàng)建Bean,所以要求Bean中必須有無參數(shù)的構造方法。

id:唯一的。

setter注入

<bean id="" class="">

<property name="" value=""></property>

</bean>

構造器注入

<bean id="" class="">

<constructor-arg value="" type="java.lang.String"></constructor-arg>

<constructor-arg value="" index="0"></constructor-arg>

</bean>

細節(jié)

1.用property的<ref>屬性簡歷bean之間的引用關系

<property name="" ref=""></property>

2.在內部聲明bean(不能被別的bean引用)

<bean class="">

<constructor-arg value=""></constructor-arg>

</bean>

bean的作用域

<bean id="" class="" scope="prototype/singleton(默認)"></bean>

prototype:每申請一次生成一個新的bean(容器初始化時不創(chuàng)建)

singleton:整個容器聲明周期內只創(chuàng)建一個bean(容器初始化時就創(chuàng)建了這個bean)

IOC容器中bean的生命周期方法

1.通過構造器或工廠方法創(chuàng)建bean實例

2.為bean的屬性設置值和對其他bean的引用

3.調用bean的初始化方法

4.bean可以使用

5.容器關閉時,調用bean的銷毀方法

<bean id="" class="" init-method="" destroy-method=""></bean>自己定義初始化和銷毀方法。

實現(xiàn)BeanPostProcessor接口,并具體提供以下兩個方法:

init-method之前被調用

Object postProcessBeforeInitialization(Object bean,String beanName)

init-method之后被調用

Object postProcessAfterInitialization(Object bean,String beanName)

可以在以上兩個方法中修改返回的bean,甚至返回一個新的bean。

通過靜態(tài)工廠方法來配置bean

class:指向靜態(tài)工廠方法的全類名

factory-method:指向靜態(tài)工廠方法的名字

constructor-arg:工廠方法需要傳入參數(shù)時,用這個配置參數(shù)。


通過實例工廠方法來配置bean

配置工廠實例

<bean id="factory" class="com.instancefactory"></bean>

通過實例工廠方法來配置bean

<bean id="" factory-bean="factory" factory-method="getcar">

<constructor-arg value="ford"></constructor-arg>

</bean>

用注解聯(lián)系兩個bean之間的關系

1.某個變量或set方法之前加@Autowired注解,如下所示

@Autowired

private? UserService uservice

這樣就可以在ioc容器中自動找相應的bean

2.若一個接口有多個類型兼容的實現(xiàn)bean,那么@Autowired之后的括號中可以命名一個同一實現(xiàn)的屬性名,如下

@UserService("userService")

public class UserServiceImpl implents UserService


@Autowired

public void setUserService(UserService userService)

3.也可以在對象和set方法之前加上@Autowired和@Quallifier如下所示

@Autowired

@Qualifier("userRepositoryImpl")

public void setUserRepository(UserRepository userrepository){

this.userrepository=userrepository;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 文章作者:Tyan博客:noahsnail.com 3.4 Dependencies A typical ente...
    SnailTyan閱讀 4,493評論 2 7
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • Spring簡介: Spring是一個IOC(DI)和AOP容器框架: 輕量級:Spring是非侵入性的,基于開發(fā)...
    JHMichael閱讀 646評論 0 3
  • 如下是整篇文章的結構,所需閱讀時間大約20min Spring簡介 Spring框架由Rod Johnson開發(fā),...
    逆風飛行1226閱讀 977評論 0 15
  • 一言不合就寫個匯總短文。 因為要寫一些東西來記筆記以及心得什么的,必然要碼字,既然碼字就想要碼的又快又好,那么怎么...
    瘦長的豐一禾閱讀 274評論 0 0

友情鏈接更多精彩內容