当前位置: 首页 > 面试题库 >

在Spring的Java配置中自动装配Bean

赫连俊悟
2023-03-14
问题内容

是否可以在用@AutowiredJava编写的Spring配置中使用Spring的注释?

例如:

@Configuration
public class SpringConfiguration{

   @Autowired 
   DataSource datasource;

   @Bean
   public DataSource dataSource(){
       return new dataSource();
   }

   // ...

}

显然,不能直接实例化DataSource接口,但是为了简化起见,我在这里直接实例化了它。当前,当我尝试上述操作时,数据源对象仍然为null,并且Spring不会对其进行自动接线。

我通过返回一个@AutowiredHibernate
SessionFactory对象成功地工作了FactoryBean<SessionFactory>

所以我的问题特别是:是否有办法针对a DataSource?或更笼统地说,在Spring Java
Configuration中自动装配bean的方法是什么?

我应该注意我正在使用Spring 3.2版。


问题答案:

如果需要DataSource在同一@Configuration文件中引用bean,则只需调用bean方法。

@Bean
public OtherBean someOtherBean() {
    return new OtherBean(dataSource());
}

或将其自动连接到@Bean方法中

@Bean
public OtherBean someOtherBean(DataSource dataSource) {
    return new OtherBean(dataSource);
}

@Configuration类的生命周期有时会像您建议的那样阻止自动装配。



 类似资料:
  • 主要内容:Spring 自动装配,自动装配规则,示例我们把 Spring 在 Bean 与 Bean 之间建立依赖关系的行为称为“装配”。 Spring 的 IOC 容器虽然功能强大,但它本身不过只是一个空壳而已,它自己并不能独自完成装配工作。需要我们主动将 Bean 放进去,并告诉它 Bean 和 Bean 之间的依赖关系,它才能按照我们的要求完成装配工作。 在前面的学习中,我们都是在 XML 配置中通过 <constructor-arg>和 <

  • Spring支持IOC,自动装配不用类实例化,直接从bean容器中取。 1、配置在xml中 <bean id="employeeDAO" class="com.guor.EmployeeDAOImpl" autowire="byName" /> 2、@Autowired自动装配

  • 问题内容: 我想在servlet中使用spring自动装配,所以这是我的代码: 而用注释 和我的applicationContext.xml: 有时自动装配有效,有时却无效(对spring bean systemPropertyDao的引用为null),有人可以告诉我是否缺少什么吗? 问题答案: 我在以下链接中遵循了该解决方案,并且工作正常: 从JBoss中的servlet访问Spring Bea

  • 问题内容: 我有一个要测试的Spring组件,该组件具有autowired属性,出于单元测试的目的,我需要更改该属性。问题是,该类在post- construct方法内部使用了自动装配的组件,因此在实际使用它之前,我无法替换它(即通过ReflectionTestUtils)。 我该怎么办? 这是我要测试的课程: 这是一个测试用例的基础: 在调用postconstruct方法之前,是否可以用其他方法

  • 我尝试了一切,但我似乎无法禁用Spring启动2.1.10中的Spring安全自动配置--我认为自动配置似乎是由执行器触发的,但我试图排除几乎所有可能的类,但似乎仍然引入了过滤链。当我通过属性文件进行配置时,它短暂地工作了一下,但又停止了工作。 我试过了

  • 本文向大家介绍基于XML配置Spring的自动装配过程解析,包括了基于XML配置Spring的自动装配过程解析的使用技巧和注意事项,需要的朋友参考一下 一、了解Spring自动装配的方式 采用传统的XML方式配置Bean组件的关键代码如下所示 我们通过<property>标签为Bean的属性注入所需的值,当需要维护的Bean组件及需要注入的属性更多时,势必会增加配置的工作量。这时可以使用自动装配。