随笔分类 - spring参考手册
摘要:6.1.1 提供带注解的限定符元数据 在第6.9.4节“使用@Qualifier微调基于注解的自动装配”中讨论了@Qualifier注解。该部分中的示例阐释了,在解析自动装配候选者的时候,使用@Qualifier注解和自定义限定符注解来提供细粒度的控制。因为这些是基于XML bean的定义的例子,所
阅读全文
摘要:6.10.7 为自动检测组件提供作用域 总地来说,如同Spring管理的组件,自动检测组件的默认和最常见的作用域就是单例。但是,有时您需要其他作用域,Spring 2.5提供了新的@Scope注解。 只需在注解中提供作用域的名称: 若要为作用域解析提供自定义的策略而不是依赖基于注解的方法,可以实现S
阅读全文
摘要:6.10.6 给自动检测组件命名 当组件作为扫描过程的一部分被自动检测到时,其bean名称由该扫描程序已知的BeanNameGenerator策略生成。默认情况下,任何包含名称值的Spring构造型注解(@ Component,@ Repository,@ Service和@Controller)都
阅读全文
摘要:6.1.1 在组件中定义bean的元数据 Spring组件还可以向容器提供bean的定义元数据。在@Configuration带注释的类中,您可以使用相同的@Bean注解来定义bean的元数据。这里有一个简单的例子: 此类是一个Spring组件,其doWork()方法中包含应用程序特定的代码。 但是
阅读全文
摘要:6.10.4 使用过滤器自定义扫描 默认情况下,使用@Component,@ Repository,@ Service,@ Controller或者自身使用@Component注解标记的自定义注解标记的类是唯一检测到的候选组件。然而,您可以通过应用自定义筛选器来修改和扩展此行为。将它们添加为@Com
阅读全文
摘要:6.1.1 自动检测类和注册bean的定义 Spring可以自动检测构造型类,并使用ApplicationContext注册相应的BeanDefinition。例如,以下两个类符合这种自动检测的条件: 要自动检测这些类并注册相应的bean,需要将@ComponentScan添加到你的@Configu
阅读全文
摘要:6.1.1 元注解 Spring提供的许多注解都可以在您自己的代码中用作元注解。元注解只是一个可以应用于另一个注解的注解。例如,上面提到的@Service注解是使用@Component进行元注解的: 元注解也可以进行组合来创建组合注解。例如,Spring MVC的@RestController注释由
阅读全文
摘要:6.1.1 @Component和深层的构造型注解 @Repository注解是任何满足存储库的角色或构造型(为人知的有:数据访问对象或DAO)的类的标记。该标记的用途包括异常的自动转化,如第19.2.2节“异常转化”中所述。 Spring提供了深层的构造型注解:@ Component,@ Serv
阅读全文
摘要:6.10 类路径扫描和被管理的组件 本章中的大多数示例都使用XML来指定在Spring容器中生成每个BeanDefinition的配置元数据。上一节(第6.9节“基于注解的容器配置”)阐述了如何通过源码级别的注解来提供大量配置元数据。实际上,在这些示例中,虽然“基本”bean定义在XML文件中明确定
阅读全文
摘要:6.9.8 @PostConstruct和@PreDestroy CommonAnnotationBeanPostProcessor不仅识别@Resource注解,还识别JSR-250生命周期的注解。在初始化回调和销毁回调中描述了,Spring 2.5引入的另一种替代方法来支持这些注解。如果Comm
阅读全文
摘要:6.9.7 @Resource Spring还支持在字段或bean属性setter方法上使用JSR-250 @Resource注释进行注入。 这是Java EE 5和6中的常见模式,例如在JSF 1.2管理的bean或JAX-WS 2.0端点中。 对于由Spring管理的对象也支持这种模式。 @Re
阅读全文
摘要:6.9.6 CustomAutowireConfigurer CustomAutowireConfigurer是一个BeanFactoryPostProcessor,它允许您注册自己的自定义限定符注解类型,即使它们没有使用Spring的@Qualifier注解进行注解。 AutowireCandid
阅读全文
摘要:6.9.5 使用泛型作为自动装配限定符 除了@Qualifier注解之外,还可以使用Java泛型类型作为限定的隐式形式。例如,假设您具有以下配置: 假设上面的bean实现了一个通用接口,即Store <String>和Store <Integer>,@Autowire Store接口和泛型将被用作限
阅读全文
摘要:6.9.4 使用@Qualifier微调基于注解的自动装配 @Primary是一种有效的方法,可以在确定一个主要候选者时按类型使用自动装配。当需要更多地控制选择过程时,可以使用Spring的@Qualifier注解。您可以将限定符值与特定参数相关联,缩小类型匹配集,以便为每个参数选择特定的bean。
阅读全文
摘要:由于按类型自动装配可能会有多个候选者,因此通常需要对选择过程进行更多地控制。实现这一目标的一种方法是使用Spring的@Primary注解。 @Primary表明当多个bean可以自动装配到单值依赖项时,应该优先选择指定的bean。如果候选者中只存在一个“primary”bean,则它将是自动装配的
阅读全文
摘要:6.9.2 @Autowired 正如料想的那样,您可以将@Autowired注解应用于“传统”的setter方法: 在下面的示例中,可以使用JSR 330的@Inject注解代替Spring的@Autowired注解。有关详细信息,请参见此处 您还可以将此注解应用于具有任意名称和/或多个参数的方法
阅读全文
摘要:6.9.1 @Required @Required注解适用于bean属性setter方法,如下例所示: 此注解简单地表示受影响的bean属性必须在配置时通过bean定义中明确的属性值或通过自动装配进行填充。如果尚未填充受影响的bean属性,容器将引发异常;这允许及时和明确的失败以避免NullPoin
阅读全文
摘要:6.9 基于注解的容器配置 使用注解配置Spring是否比XML要好? 基于注解的配置的引入引发了这种方法是否比XML更“好”的问题。简短的答案是:由它自己决定。长的答案是:每种方法都有其优点和缺点,通常由开发人员决定哪种策略更适合他们。由于它们的定义方式,注解在其声明中提供了大量上下文,才会导致更
阅读全文
摘要:6.8.3 使用FactoryBean自定义实例化逻辑 为本身为工厂的对象实现org.springframework.beans.factory.FactoryBean。 FactoryBean接口是Spring IoC容器实例化逻辑的可插拔点。如果您有更复杂的初始化代码,这些代码在Java中可以更
阅读全文
摘要:6.8.2 使用BeanFactoryPostProcessor定制配置元数据 我们将看到的下一个扩展点是org.springframework.beans.factory.config.BeanFactoryPostProcessor。 这个接口的语义类似于BeanPostProcessor的语义
阅读全文