您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页SPRING MVC注解 学习笔记

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>  


,防止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       
 ">  

 

 

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 配置依然拥有不可替代的地位

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务