Spring 注解注入

Spring 注解时候默认命名规则

使用注解配置bean时候,并没有指定bean的id,那么Spring帮我们创建 bean时候会给一个默认的id,id为类名首字母小写比如PersonService => personService

定义Bean

使用@Component注解对类进行标注,可以被Spring容器识别,Spring容器自动将POJO转换成容器管理的Bean

@Component
public class LogonService {}

和使用下面XML配置是等效的


Spring提供3个功能和@Component等效注解。为了让标注类本身用途清晰化。

  • @Repository:用于DAO实现类进行标注
  • @Service: 用于对Service实现类进行标注
  • @Controller: 用于对Controller实现类进行标注

可以给组件一个名称
@Component(value="testName")

Autowired && Qualifier

@Autowired对类成员变量及方法入参进行标注。默认是通过类型(byType)进行注入。

默认情况下@Autowired注释进行自动注入时候,Spring容器匹配的候选Bean数目必须仅有一个。当找不到匹配的Bean时候,Spring容器抛错。
所以这种情况下我们可以使用byName标识进行注入。增加@Qualifier注释。一般在候选Bean数目不为1时应该加@Qualifier注释。

标注注解支持

@Resource 按照名称匹配,而且相对于Autowired不支持require。
所以默认使用Autowired能满足开发要求。

作用域范围及生命周期过程方法

作用域

通过注解@Scope,可以显示知道Bean的作用范围

@Scope("prototype")
@Component("logonService")
public class LogonService {
}

生命过程方法

使用XML进行配置时候,通过init-methoddestory-method属性指定Bean初始化。Spring 支持@PostConstruct@PreDestroy两种注解分别对应上面XML的生命周期的方法。

你可能感兴趣的:(Spring 注解注入)