SPRING MVC註解 學習筆記

添加@Autowired註解
package cn.com.myFrame.spring.autowire;

import org.springframework.beans.factory.annotation.Autowired;

public class Chinese {
	
	@Autowired
	private Dog dog=new Dog();

	public Dog getDog() {
		return dog;
	}

	public void setDog(Dog dog) {
		this.dog = dog;
	}
	
}

(2):在spring文件中加入AutowiredAnnotationBeanPostProcessorBean

<?xml version="1.0" encoding="UTF-8" ?>     
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
    xsi:schemaLocation="http://www.springframework.org/schema/beans       
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
        
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>    
           
    <bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
    
	<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
		<property name="name">
			<value>sbDog</value>
		</property>
	</bean>
	
</beans>  


2:@Qualifier 只能和 @Autowired 結合使用,防止xml中有多個注入類型的定義

package cn.com.myFrame.spring.autowire;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

public class Chinese {
	
	@Autowired
	@Qualifier("dog1")  
	private Dog dog=new Dog();

	public Dog getDog() {
		return dog;
	}

	public void setDog(Dog dog) {
		this.dog = dog;
	}
	
}


xml中有多個Dog的聲明

<?xml version="1.0" encoding="UTF-8" ?>     
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
    xsi:schemaLocation="http://www.springframework.org/schema/beans       
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
        
    <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>    
           
    <bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
    
	<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
		<property name="name">
			<value>sbDog</value>
		</property>
	</bean>

	<bean id="dog1" class="cn.com.myFrame.spring.autowire.Dog">
		<property name="name">
			<value>2bDog</value>
		</property>
	</bean>
	
</beans>    	


 

3:@Resource(name = "dog1")

package cn.com.myFrame.spring.autowire;

import javax.annotation.Resource;

public class Chinese {
	
	@Resource(name = "dog1") 
	private Dog dog=new Dog();

	public Dog getDog() {
		return dog;
	}

	public void setDog(Dog dog) {
		this.dog = dog;
	}
	
}


 這裏添加的是 CommonAnnotationBeanPostProcessor

<?xml version="1.0" encoding="UTF-8" ?>     
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
    xsi:schemaLocation="http://www.springframework.org/schema/beans       
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
        
	<bean  class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
	      
    <bean id="chinese" class="cn.com.myFrame.spring.autowire.Chinese"/>
    
	<bean id="dog" class="cn.com.myFrame.spring.autowire.Dog">
		<property name="name">
			<value>sbDog</value>
		</property>
	</bean>

	<bean id="dog1" class="cn.com.myFrame.spring.autowire.Dog">
		<property name="name">
			<value>2bDog</value>
		</property>
	</bean>
	
</beans>  

 

4:<context:annotationconfig/> 將隱式地向 Spring 容器註冊 AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、 PersistenceAnnotationBeanPostProcessor 以及 equiredAnnotationBeanPostProcessor 這 4 個 BeanPostProcessor。

 

需要注意添加相應的命名空間

<?xml version="1.0" encoding="UTF-8" ?>     
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
     xmlns:context="http://www.springframework.org/schema/context"     
     xsi:schemaLocation="http://www.springframework.org/schema/beans       
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd      
 http://www.springframework.org/schema/context       
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">  

 

 

5:@Component 註釋 從 XML 配置文件中完全移除 Bean 定義的配置

 

package cn.com.myFrame.spring.autowire;

import javax.annotation.Resource;
import org.springframework.stereotype.Component;

@Component
public class Chinese {
	
	@Resource(name = "dog") 
	private Dog dog=new Dog();

	public Dog getDog() {
		return dog;
	}
	public void setDog(Dog dog) {
		this.dog = dog;
	}
	
}

 

Spring 容器必須啓用類掃描機制以啓用註釋驅動 Bean 定義和註釋驅動 Bean 自動注入的策略 <context:component-scan/>

<?xml version="1.0" encoding="UTF-8" ?>     
<beans xmlns="http://www.springframework.org/schema/beans"     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
    xmlns:context="http://www.springframework.org/schema/context"     
    xsi:schemaLocation="http://www.springframework.org/schema/beans       
 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd      
 http://www.springframework.org/schema/context       
 http://www.springframework.org/schema/context/spring-context-2.5.xsd">     
 
    <context:component-scan base-package="cn.com.myFrame.spring.autowire"/>     
</beans>  


 

 

Spring 在 2.1 以後對註釋配置提供了強力的支持,註釋配置功能成爲 Spring 2.5 的最大的亮點之一。合理地使用 Spring 2.5 的註釋配置,可以有效減少配置的工作量,提高程序的內聚性。但是這並不意味着傳統 XML 配置將走向消亡,在第三方類 Bean 的配置,以及那些諸如數據源、緩存池、持久層操作模板類、事務管理等內容的配置上,XML 配置依然擁有不可替代的地位

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章