Spring框架之基于Java的容器注解

网站建设3年前发布
20 0 0

我们将介绍如何在Java代码中使用注解来配置Spring容器。它包括:,@Bean注解用在一个方法上表示实例化、配置和初始化一个新对象,由Spring IoC容器管理。对于那些熟悉Spring的 XML配置的人来说,@Bean注解的作用与元素的作用相同。,用@Configuration来注解一个类,表明它的主要目的是作为一个bean定义的来源。此外,@Configuration类允许通过调用同一个类中的其他@Bean方法来定义Bean间的依赖关系。最简单的@Configuration类如下:,与实例化,ClassPathXmlApplicationContext时使用Spring XML文件作为输入的方式相同,你可以在实例化AnnotationConfigApplicationContext时使用@Configuration类作为输入。这使得Spring容器的使用完全不需要XML,如下例子:,你可以通过使用无参数构造函数来实例化AnnotationConfigApplicationContext,然后使用 register() 方法来配置它。这种方法在以编程方式构建 AnnotationConfigApplicationContext 时特别有用。下面的例子展示了如何做到这一点。,为了启用组件扫描,可以在@Configuration类做如下注释。,任何用@Bean注解定义的类都支持常规的生命周期回调,并且可以使用JSR-250的@PostConstruct和@PreDestroy注解。如果一个bean实现了InitializingBean、DisposableBean或Lifecycle,它们各自的方法将被容器调用。,Bean默认的作用域是singleton,更多Bean作用域可参考Bean作用域章节。,默认情况下,配置类使用@Bean方法的名称作为Bean的名称。可以通过name属性来自定义名称,如下:,@Import注解表示要导入一个或多个@Configuration类。在导入的@Configuration类中声明的@Bean定义应该通过使用@Autowired注入来访问。,现在,在实例化上下文时不需要同时指定ConfigA类和ConfigB类,而只需要明确提供ConfigB:,Spring提供了一个@ImportResource注解,用于从applicationContext.xml文件中加载bean到应用上下文中。,我们将讨论如何使用@PropertySource来读取属性文件,并用@Value和Environment来显示值。,@PropertySource注解为向Spring的环境添加PropertySource提供了一种方便的声明性机制。要与@Configuration类一起使用。,假设我们从config.properties文件中读取数据库配置,并使用Environment将这些属性值设置为DataSourceConfig类。,ApplicationContext实现了BeanFactory接口,并提供了如下功能:,ApplicationContext接口扩展了一个名为MessageSource的接口,因此,它提供了国际化("i18n")功能。Spring还提供了HierarchicalMessageSource接口,它可以分层次地解析消息。

© 版权声明

相关文章