Spring 注解(二)

16 篇文章 0 订阅
3 篇文章 0 订阅

本文理出了Spring的常用注解(@Autowired  @Qualifier @Required @Service等)以及其使用案例,后面会整理一些JSR-250的常用注解与案例

(1)@Autowired

 实现自动装载

 用来替换代码里set和get的手动注入函数

        public void setEat(LiSpringEatImp obj){
		this.eat = obj;
	}
	
	public LiSpringEatImp getEat(){
		return this.eat;
	}
	
	public void setSleep(LiSpringSleepImp obj){
		this.sleep = obj;
	}
	
	public LiSpringSleepImp getSleep(){
		return this.sleep;
	}

以及xml文件中

<bean id="liSpringcontrol" class="com.li.spring.control.LiSpringControl">

    <!-- property name="eat" ref="liSpringEatImp"/-->

    <!-- property name="sleep" ref="liSpringSleepImp"/-->

   

</bean>

 property的属性配置

 

注意:@ Autowired使用来自动装配class中的property的,当然这个property要在beanfactory中有定义(或者说它要是一个接口或者实现类,要有ref属性),否则,如果是class中的普通属性(如 int String等),还是要通过setget方式注入的

 

(2)@Qualifier

这是用来实现多态的重要一个注释,判断其到底使用哪一个bean

 

注意在引入eclipse的时候要看清楚improt导入的文件

需要选择的是下面的一个即:

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

 

否则会出现

The annotation @Qualifier is disallowed for this location

这个问题查了一些时间,没想到问题出在这边        

 

官网使用demo如下:

https://www.tutorialspoint.com/spring/spring_qualifier_annotation.htm

如:

@Autowired

@Qualifier("liSpringEatImp2")

private LiSpringServiceEat liSpringEatImp2;

 

(3)@Autowried和@Required的区别

@Autowried用来装载一个bean, 可以用来装载一个setter函数,这一点和@Required一样,但是其不仅仅局限于此,@Autowried还可以用于装载bean的构造函数,属性,方法参数等其他方面

@Required用来检测特定的属性是否被注入

 

(4)用于注册bean的注释

需要在applicationContext.xml中加入如下配置:

<context:component-scan base-package="com.li.spring.imp"/>

其中base-package是你的包

@Component, @Service, @Controller or@Repository

这几个都用用来注册bean

@Service对应业务层的bean

@Repository对应数据访问层Bean

@Controller对应表现层的Bean

默认使用类名的首字母小写作为bean名称

 

如:

@Service("liSpringServiceEatMeat")

publicclassLiSpringEatImp implements LiSpringServiceEat

 

@Autowired

@Qualifier("liSpringServiceEatMeat")

private LiSpringServiceEat liSpringEat;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值