@Component组件

标识一个受Spring IOC容器管理的组件

@Repository

标识一个受SpringIOC容器持久化层的组件

@Service

标识一个SpringIOC容器的业务逻辑层组件

@Controller

标识一个SpringIOC容器管理的表述层的控制器组件

  • 组件命名规则
  • 默认情况:使用组件的简单类名首字母小写后得到的字符串作为bean的id
  • 我们可以使用组件注解的value属性指定bean的id,value属性名可以省略

 组件扫描:

类别

示例

说明

annotation

com.a.XxxAnnotation

过滤所有标注了XxxAnnotation的类。这个规则根据目标组件是否标注了指定类型的注解进行过滤。

assignable

com.a.BaseXxx

过滤所有BaseXxx类的子类。这个规则根据目标组件是否是指定类型的子类的方式进行过滤。

aspectj

com.a.*Service+

所有类名是以Service结束的,或这样的类的子类。这个规则根据AspectJ表达式进行过滤。

regex

com\.a\.anno\.*

所有com.atguigu.anno包下的类。这个规则根据正则表达式匹配到的类名进行过滤。

custom

com.a.XxxTypeFilter

使用XxxTypeFilter类通过编码的方式自定义过滤规则。该类必须实现org.springframework.core.type.filter.TypeFilter接口

给Bean的属性值注入值:(自动装配的方式)

可以通过spring注解的方式实现属性的装配的。

@Autowired注解

  1. 构造器、普通字段(即使是非public)、一切具有参数的方法都可以应用@Autowired注解。
  2. 默认情况下,所有使用@Autowired注解的属性都需要被设置。当Spring找不到匹配的bean装配属性时,会抛出异常。
  3. 若某一属性允许不被设置,可以设置@Autowired注解的required属性为 false。
  4. @Autowired注解也可以应用在数组类型的属性上,此时Spring将会把所有匹配的bean进行自动装配。
  5. @Autowired注解也可以应用在集合属性上,此时Spring读取该集合的类型信息,然后自动装配所有与之兼容的bean。
  6. @Autowired注解用在java.util.Map上时,若该Map的键值为String,那么 Spring将自动装配与值类型兼容的bean作为值,并以bean的id值作为键。