天天看點

Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例

Spring-02基于注解的IOC和IOC的案例

01 | ioc注解

1、 曾經XML的配置:

<bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"
        scope=""  init-method="" destroy-method="">
      <property name=""  value="" | ref=""></property>
  </bean>
           
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例

2、用于建立對象的

1. 他們的作用就和在XML配置檔案中編寫一個<bean>标簽實作的功能是一樣的
	2. Component:
		作用:用于把目前類對象存入spring容器中
		屬性:
		    value:用于指定bean的id。當我們不寫時,它的預設值是目前類名,且首字母改小寫。
	3.  Controller:一般用在表現層
	4.  Service:一般用在業務層
	5.  Repository:一般用在持久層
	6.  以上三個注解他們的作用和屬性與Component是一模一樣。
	7.  他們三個是spring架構為我們提供明确的三層使用的注解,使我們的三層對象更加清晰
           

3、用于注入資料的

1.  他們的作用就和在xml配置檔案中的bean标簽中寫一個<property>标簽的作用是一樣的
	2.  Autowired:
		a. 作用:
			自動按照類型注入。隻要容器中有唯一的一個bean對象類型和要注入的變量類型比對,就可以注入成功
			如果ioc容器中沒有任何bean的類型和要注入的變量類型比對,則報錯。
			如果Ioc容器中有多個類型比對時:
		b. 出現位置:
			可以是變量上,也可以是方法上
		c. 細節:
			在使用注解注入時,set方法就不是必須的了。
	3. Qualifier:
		a. 作用:在按照類中注入的基礎之上再按照名稱注入。它在給類成員注入時不能單獨使用。但是在給方法參數注入時可以(稍後我們講)
		b. 屬性:
			value:用于指定注入bean的id。
	4. Resource
		a. 作用:直接按照bean的id注入。它可以獨立使用
		b. 屬性:
			name:用于指定bean的id。
	5. 以上三個注入都隻能注入其他bean類型的資料,而基本類型和String類型無法使用上述注解實作。
	另外,集合類型的注入隻能通過XML來實作。
	
	6. Value
		a. 作用:用于注入基本類型和String類型的資料
		b. 屬性:
			alue:用于指定資料的值。它可以使用spring中SpEL(也就是spring的el表達式)
			SpEL的寫法:${表達式}
	
	7. 用于改變作用範圍的
		a. 他們的作用就和在bean标簽中使用scope屬性實作的功能是一樣的
		b. Scope
			作用:用于指定bean的作用範圍
			屬性:
				value:指定範圍的取值。常用取值:singleton prototype
	
	8.  和生命周期相關了解
		a. 他們的作用就和在bean标簽中使用init-method和destroy-methode的作用是一樣的
		b. PreDestroy
		 	作用:用于指定銷毀方法
		c. PostConstruct
			作用:用于指定初始化方法
           
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
1. <!--告知spring在建立容器時要掃描的包,配置所需要的标簽不是在beans的限制中,而是一個名稱為context名稱空間和限制中-->
	2. <context:component-scan base-package="com.itheima"></context:component-scan>
           

02 | ioc中xml和annotation

1、XML配置:

Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例

2、XML配置對應的annotation配置:

Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例

03 | spring中的新注解—它的作用和bean.xml是一樣的

1、spring中的新注解

Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例
Spring-02基于注解的IOC和IOC的案例Spring-02基于注解的IOC和IOC的案例

04 | spring整合Junit的配置

1. 使用Junit單元測試:測試我們的配置
	2. Spring整合junit的配置
	       1、導入spring整合junit的jar(坐标)
	       2、使用Junit提供的一個注解把原有的main方法替換了,替換成spring提供的@Runwith
	       3、告知spring的運作器,spring和ioc建立是基于xml還是注解的,并且說明位置@ContextConfiguration
		       locations:指定xml檔案的位置,加上classpath關鍵字,表示在類路徑下
		       classes:指定注解類所在地位置
 
	//當我們使用spring 5.x版本的時候,要求junit的jar必須是4.12及以上
	@RunWith(SpringJUnit4ClassRunner.class)
	@ContextConfiguration(classes = SpringConfiguration.class)
	public class AccountServiceTest {
           

參考文獻:

[1] 黑馬. 主流架構[M]. 傳智播客, 2019.

[2] 圖檔取自黑馬講義