常用注解
  @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 
   @Scope注解 作用域
 @Lazy(true) 表示延迟初始化
 @Service用于标注业务层组件、 
 @Controller用于标注控制层组件(如struts中的action)
 @Repository用于标注数据访问组件,即DAO组件。
 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
 @Scope用于指定scope作用域的(用在类上)
 @PostConstruct用于指定初始化方法(用在方法上)
 @PreDestory用于指定销毁方法(用在方法上)
 @Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
 @DependsOn:定义Bean初始化及销毁时的顺序
 @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
 @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用
 @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用 
@Autowired 与@Resource的区别(详细)
  @Resource装配顺序 
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配
 1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配
  @AutoWire   //当使用这个注入的时候上面的 UserServiceImpl 只需要这样写 @Service,这样就会自动找到UserService这个类型以及他的子类型。UserServiceImpl 实现了UserService,所以能够找到它。不过这样有一个缺点,就是当UserService实现类有两个以上的时候,这个时候会找哪一个呢,这就造成了冲突,所以要用@AutoWire注入的时候要确保UserService只有一个实现类。
   
   @Autowired @Qualifie("userService") 是直接按照名字进行搜索
 

京公网安备 11010502036488号