Bean配置(注解)

Posted *蓄势待发*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

格式:定义在类的上方

以上是关于Bean配置(注解)的主要内容,如果未能解决你的问题,请参考以下文章

如何获取spring 注解的bean

Spring从入门到精通—注解开发

Spring的bean管理(注解)

Bean 注解(Annotation)配置- 通过注解加载Bean

Spring--通过注解来配置bean

SpringSpring 用注解 储存bean(类注解方法注解)Spring如何制作出类注解beanName