02 2019 档案

摘要:6.1.1 在组件中定义bean的元数据 Spring组件还可以向容器提供bean的定义元数据。在@Configuration带注释的类中,您可以使用相同的@Bean注解来定义bean的元数据。这里有一个简单的例子: 此类是一个Spring组件,其doWork()方法中包含应用程序特定的代码。 但是 阅读全文
posted @ 2019-02-28 20:16 编程老司机A 阅读(234) 评论(0) 推荐(0) 编辑
摘要:6.10.4 使用过滤器自定义扫描 默认情况下,使用@Component,@ Repository,@ Service,@ Controller或者自身使用@Component注解标记的自定义注解标记的类是唯一检测到的候选组件。然而,您可以通过应用自定义筛选器来修改和扩展此行为。将它们添加为@Com 阅读全文
posted @ 2019-02-27 19:54 编程老司机A 阅读(327) 评论(0) 推荐(0) 编辑
摘要:6.1.1 自动检测类和注册bean的定义 Spring可以自动检测构造型类,并使用ApplicationContext注册相应的BeanDefinition。例如,以下两个类符合这种自动检测的条件: 要自动检测这些类并注册相应的bean,需要将@ComponentScan添加到你的@Configu 阅读全文
posted @ 2019-02-26 19:51 编程老司机A 阅读(166) 评论(0) 推荐(0) 编辑
摘要:6.1.1 元注解 Spring提供的许多注解都可以在您自己的代码中用作元注解。元注解只是一个可以应用于另一个注解的注解。例如,上面提到的@Service注解是使用@Component进行元注解的: 元注解也可以进行组合来创建组合注解。例如,Spring MVC的@RestController注释由 阅读全文
posted @ 2019-02-25 19:04 编程老司机A 阅读(214) 评论(0) 推荐(0) 编辑
摘要:6.1.1 @Component和深层的构造型注解 @Repository注解是任何满足存储库的角色或构造型(为人知的有:数据访问对象或DAO)的类的标记。该标记的用途包括异常的自动转化,如第19.2.2节“异常转化”中所述。 Spring提供了深层的构造型注解:@ Component,@ Serv 阅读全文
posted @ 2019-02-24 15:09 编程老司机A 阅读(399) 评论(0) 推荐(0) 编辑
摘要:6.10 类路径扫描和被管理的组件 本章中的大多数示例都使用XML来指定在Spring容器中生成每个BeanDefinition的配置元数据。上一节(第6.9节“基于注解的容器配置”)阐述了如何通过源码级别的注解来提供大量配置元数据。实际上,在这些示例中,虽然“基本”bean定义在XML文件中明确定 阅读全文
posted @ 2019-02-23 22:11 编程老司机A 阅读(179) 评论(0) 推荐(0) 编辑
摘要:6.9.8 @PostConstruct和@PreDestroy CommonAnnotationBeanPostProcessor不仅识别@Resource注解,还识别JSR-250生命周期的注解。在初始化回调和销毁回调中描述了,Spring 2.5引入的另一种替代方法来支持这些注解。如果Comm 阅读全文
posted @ 2019-02-22 06:47 编程老司机A 阅读(202) 评论(0) 推荐(0) 编辑
摘要:6.9.7 @Resource Spring还支持在字段或bean属性setter方法上使用JSR-250 @Resource注释进行注入。 这是Java EE 5和6中的常见模式,例如在JSF 1.2管理的bean或JAX-WS 2.0端点中。 对于由Spring管理的对象也支持这种模式。 @Re 阅读全文
posted @ 2019-02-21 12:50 编程老司机A 阅读(195) 评论(0) 推荐(0) 编辑
摘要:6.9.6 CustomAutowireConfigurer CustomAutowireConfigurer是一个BeanFactoryPostProcessor,它允许您注册自己的自定义限定符注解类型,即使它们没有使用Spring的@Qualifier注解进行注解。 AutowireCandid 阅读全文
posted @ 2019-02-20 22:58 编程老司机A 阅读(570) 评论(0) 推荐(0) 编辑
摘要:6.9.5 使用泛型作为自动装配限定符 除了@Qualifier注解之外,还可以使用Java泛型类型作为限定的隐式形式。例如,假设您具有以下配置: 假设上面的bean实现了一个通用接口,即Store <String>和Store <Integer>,@Autowire Store接口和泛型将被用作限 阅读全文
posted @ 2019-02-19 18:02 编程老司机A 阅读(242) 评论(0) 推荐(0) 编辑
摘要:6.9.4 使用@Qualifier微调基于注解的自动装配 @Primary是一种有效的方法,可以在确定一个主要候选者时按类型使用自动装配。当需要更多地控制选择过程时,可以使用Spring的@Qualifier注解。您可以将限定符值与特定参数相关联,缩小类型匹配集,以便为每个参数选择特定的bean。 阅读全文
posted @ 2019-02-18 19:25 编程老司机A 阅读(315) 评论(0) 推荐(0) 编辑
摘要:由于按类型自动装配可能会有多个候选者,因此通常需要对选择过程进行更多地控制。实现这一目标的一种方法是使用Spring的@Primary注解。 @Primary表明当多个bean可以自动装配到单值依赖项时,应该优先选择指定的bean。如果候选者中只存在一个“primary”bean,则它将是自动装配的 阅读全文
posted @ 2019-02-17 15:00 编程老司机A 阅读(215) 评论(0) 推荐(0) 编辑
摘要:6.9.2 @Autowired 正如料想的那样,您可以将@Autowired注解应用于“传统”的setter方法: 在下面的示例中,可以使用JSR 330的@Inject注解代替Spring的@Autowired注解。有关详细信息,请参见此处 您还可以将此注解应用于具有任意名称和/或多个参数的方法 阅读全文
posted @ 2019-02-16 21:26 编程老司机A 阅读(181) 评论(0) 推荐(0) 编辑
摘要:6.9.1 @Required @Required注解适用于bean属性setter方法,如下例所示: 此注解简单地表示受影响的bean属性必须在配置时通过bean定义中明确的属性值或通过自动装配进行填充。如果尚未填充受影响的bean属性,容器将引发异常;这允许及时和明确的失败以避免NullPoin 阅读全文
posted @ 2019-02-15 12:26 编程老司机A 阅读(136) 评论(0) 推荐(0) 编辑
摘要:6.9 基于注解的容器配置 使用注解配置Spring是否比XML要好? 基于注解的配置的引入引发了这种方法是否比XML更“好”的问题。简短的答案是:由它自己决定。长的答案是:每种方法都有其优点和缺点,通常由开发人员决定哪种策略更适合他们。由于它们的定义方式,注解在其声明中提供了大量上下文,才会导致更 阅读全文
posted @ 2019-02-14 18:14 编程老司机A 阅读(222) 评论(0) 推荐(0) 编辑
摘要:6.8.3 使用FactoryBean自定义实例化逻辑 为本身为工厂的对象实现org.springframework.beans.factory.FactoryBean。 FactoryBean接口是Spring IoC容器实例化逻辑的可插拔点。如果您有更复杂的初始化代码,这些代码在Java中可以更 阅读全文
posted @ 2019-02-13 12:43 编程老司机A 阅读(183) 评论(0) 推荐(0) 编辑
摘要:6.8.2 使用BeanFactoryPostProcessor定制配置元数据 我们将看到的下一个扩展点是org.springframework.beans.factory.config.BeanFactoryPostProcessor。 这个接口的语义类似于BeanPostProcessor的语义 阅读全文
posted @ 2019-02-12 12:37 编程老司机A 阅读(194) 评论(0) 推荐(0) 编辑
摘要:6.8 容器扩展点 通常,应用程序开发人员不需要实现ApplicationContext子类。反而,可以通过专门的集成接口的实现以插件形式来扩展Spring IoC容器。接下来的几节将介绍这些集成接口。 6.8.1 使用BeanPostProcessor定制Bean BeanPostProcesso 阅读全文
posted @ 2019-02-11 14:05 编程老司机A 阅读(227) 评论(0) 推荐(0) 编辑
摘要:6.7 Bean的继承 bean的定义可以包含许多配置信息,包括构造函数参数,属性值和容器特定的信息,例如初始化方法,静态工厂方法名称等。子bean的定义从父定义继承配置数据。子定义可以根据需要覆盖某些值或添加其他值。使用父子bean的定义可以节省大量的输入。实际上,这是一种模板形式。 如果以编程方 阅读全文
posted @ 2019-02-10 11:10 编程老司机A 阅读(194) 评论(0) 推荐(0) 编辑
摘要:6.6.3 其他Aware接口 除了上面讨论的ApplicationContextAware和BeanNameAware之外,Spring还提供了一系列Aware接口,允许bean向容器表明它们需要确定的基础依赖。其中最重要的Aware接口总结如下 - 作为一般规则,名称很好地说明了依赖类型:表6. 阅读全文
posted @ 2019-02-09 07:38 编程老司机A 阅读(232) 评论(0) 推荐(0) 编辑
摘要:6.6.2 ApplicationContextAware和BeanNameAware 当ApplicationContext创建了一个实现org.springframework.context.ApplicationContextAware接口的对象实例时,就为该实例提供了ApplicationC 阅读全文
posted @ 2019-02-08 07:29 编程老司机A 阅读(281) 评论(0) 推荐(0) 编辑
摘要:6.6自定义Bean的特性 6.6.1生命周期回调 要与容器的bean生命周期管理进行交互,可以实现Spring的InitializingBean和DisposableBean接口。对于前者,容器会调用afterPropertiesSet(),对于后者,容器会调用destroy()以允许bean在初 阅读全文
posted @ 2019-02-07 07:19 编程老司机A 阅读(236) 评论(0) 推荐(0) 编辑
摘要:6.5.5 自定义(custom)作用域 Bean的作用域是可扩展的;您可以定义自己的作用域,甚至重新定义现有作用域,尽管后者被认为是不好的做法,您无法覆盖内置的单例和原型作用域。 要将自定义作用域集成到Spring容器中,需要实现org.springframework.beans.factory. 阅读全文
posted @ 2019-02-06 08:36 编程老司机A 阅读(228) 评论(0) 推荐(0) 编辑
摘要:6.5.4 请求(request)、会话(session)和全局会话(global session)作用域 请求,会话和全局会话作用域仅在您使用Web的Spring ApplicationContext实现(例如XmlWebApplicationContext)时可用。如果将这些作用域与常规的Spr 阅读全文
posted @ 2019-02-05 18:43 编程老司机A 阅读(591) 评论(0) 推荐(0) 编辑
摘要:6.5.3依赖于原型Bean的单例Bean 当您使用具有依赖于原型bean的单例bean时,请注意在实例化时解析依赖项。 因此,如果将原型作用域的bean注入到单例作用域的bean中,则会实例化一个新的原型bean,然后将依赖注入到单例bean中。原型实例是唯一提供给单例作用域bean的实例。 但是 阅读全文
posted @ 2019-02-04 06:23 编程老司机A 阅读(186) 评论(0) 推荐(0) 编辑
摘要:6.5.2原型(prototype)作用域 部署非单例的、原型Bean,会导致每次请求Bean实例时,都会返回一个新的实例。也就是说,bean被注入另一个bean,或者通过对容器的getBean()方法调用来请求它。通常来说,对所有有状态bean使用原型作用域,对无状态bean使用单例作用域。下图说 阅读全文
posted @ 2019-02-03 06:42 编程老司机A 阅读(325) 评论(0) 推荐(0) 编辑
摘要:6.5.1 单例(singleton)作用域 定义为单例作用域的Bean,在Spring容器中只会存在一个实例,这个实例是共享的,所有匹配这个Bean的请求,Spring容器返回此共享的实例。换句话说,当您定义bean定义并将其作用域设置为singleton时,Spring IoC容器只会创建该be 阅读全文
posted @ 2019-02-02 09:07 编程老司机A 阅读(258) 评论(0) 推荐(0) 编辑
摘要:6.1 Bean的作用域 当你创建一个Bean的定义,你就为这个Bean定义的类创建了一个配方。Bean的定义是一个配方的想法是重要的,因为这意味着,你可以通过这个配方创建许多对象实例。 您不仅可以控制要插入到从特定bean定义创建的对象的各种依赖项和配置值,还可以控制从特定bean定义创建的对象的 阅读全文
posted @ 2019-02-01 13:17 编程老司机A 阅读(173) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示