Bean配置(注解)

使用注解定义bean

 @Component

功能:指定对应的类为Spring控制的bean

格式:定义在类的上方,可以为类指定bean名称 定义UserDAOImpl类为Spring控制的bean,未指定名称

@Component
public  class UserDaoImpl implements USerDaoI{
}

定义UserDAOImpl类为Spring控制的bean,名称”userDao”

@Component("userDao")
public  class UserDaoImpl implements USerDaoI{
}

bean的名称可以定义多个,如@Component(“u1,u2,u3”)

Spring使用注解定义bean,IoC容器并不知道哪些 类被声明了注解,因此需要类路径下每一个类进行 扫描,并针对声明了注解的类进行加载。Spring通 过XML声明的格式,定义加入扫描的路径(多配置)

<?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-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.wd"></context:component-scan>

</beans>

@Component衍生注解

Spring2.5+还定义了3个@Component的衍生注解, 用于在后期版本中对其功能进行深层次的扩展

@Repository 用于对数据层实现类进行标注

@Service 用于对业务逻辑层实现类进行标注

@Controller 用于对控制层实现类进行标注

目前上述三种注解与@Component功能完全相同,仅仅是 名称上的区别

使用注解定义属性注入

@Autowired(相当于proerty元素)

功能:标注类的成员变量为自动装配注入属性

格式:定义在成员变量的上方

参数:required

可选值:true(默认值)/false

作用:标识该属性是否必须注入,如果未对其指定注入的值, 则系统抛出异常

注入不同类别的属性需要使用不同的注解

简单类型:@Value

对象类型;@Qualifier

自动装配类型识别(引用类型)

① 注入属性类型为class

如果类名对应的类只有一个,注入成功 如果类名对应的类有多个,注入失败

注入属性类型为interface

如果不存在对应接口的实现类,注入失败

如果对应接口的实现类为一个,注入成功

如果对应接口的实现类为多个,注入失败

如果对应接口的实现类指定有bean名称,则按照按照属性 定义的名称进行匹配

如果存在对应名称的自动装配bean,注入成功

如果不存在对应名称的自动装配bean,注入失败

使用注解为属性注入值

1、@Qualifier

功能:为属性注入的Bean类型的值

格式:定义在成员变量的上方

注意:该注解与@Autowired配合使用

@Qualifier必须给出注入的bean的名称

如果对应的bean不存在,抛出异常,注入失败

为@Autowired指定参数required=false,避免注入失败时候 抛出异常(当不能确定 Spring 容器中一定拥有某个类的 Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉 Spring:在找不到匹配 Bean 时也不报错

使用注解@Resource为属性注入

Spring提供对JSR-250中定义@Resource标准注解 的支持。

@Resource与@Autowired功能非常相似,用于 bean的自动装配,格式略有区别

注解定义Bean的作用范围

@Scope

功能:为当前Bean指定scope参数,默认singleton

格式:定义在类的上方

转载于:https://www.cnblogs.com/xsdf/p/7698506.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值