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

如何使用java config配置Spring ConversionService?

关冠宇
2023-03-14
问题内容

我有这样的XML:

<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="converters.AddressToStringConverter" />
                <bean class="converters.StringToAddressConverter" />
            </list>
        </property>
    </bean>

它可以毫无问题地配置转换器。

但是,此代码无法做到相同:

@Configuration
public class ConversionConfiguration {

    @Bean
    public ConversionService getConversionService() {
        ConversionServiceFactoryBean bean = new ConversionServiceFactoryBean();
        bean.setConverters(getConverters());
        bean.afterPropertiesSet();
        ConversionService object = bean.getObject();
        return object;
    }

    private Set<Converter> getConverters() {
        Set<Converter> converters = new HashSet<Converter>();

        converters.add(new AddressToStringConverter());
        converters.add(new StringToAddressConverter());

        return converters;
    }
}

这部分配置按上下文进行扫描-我通过调试器对其进行了检查。问题可能出在哪里?


问题答案:

从我的角度来看,您的问题就是Bean名字。一旦您没有明确设置@Bean(name="conversionService")名称,将使用的名称是getConversionService

从文档:

该bean的名称,或者如果是复数,则为该bean的别名。如果未指定,则Bean的名称为带注释的方法的名称。如果指定,方法名称将被忽略。



 类似资料:
  • 然后,为了在中调度作业,我使用了: 此外,为了实际执行,我让它像这样工作: 如上所述,所有这些过去在使用XML-配置时都能正常工作。 现在,使用java-config时,在失败 对于java-configuration,我设置,如下所示: 如何使用java-config在中插入对的引用?

  • 问题内容: 根据Spring的使用Spring IoC配置AspectJ方面 的文档,以便为Spring IOC配置方面,必须在xml配置中添加以下内容: 正如@SotiriosDelimanolis所建议的那样,应在JavaConfig中将其重写为以下内容: 但是,这仅在以本机AspectJ 语法编写方面时才起作用。如果它是用Java编写并带有注释的,则会收到以下错误消息: 未为Profiler

  • IM使用Spring Batch和JavaConfig(无XML)开发项目。我正在使用一个自动生成的作业BuilderFactory创建作业。 是否可以全局设置工厂的递增器? 返回jobBuilderFactory.get("jobName")。 很抱歉,如果这是一个转储问题,但我是SpringBatch新手,没有找到有效的解决方案。

  • 这段配置通过上下文进行扫描--我用调试器检查了它。问题可能出在哪里?

  • 问题内容: 我尝试执行此docker命令以使用Elasticsearch设置Jaeger Agent和Jaeger Collector。 但是此命令给出以下错误。如何用ElasticSearch配置Jaeger? 问题答案: 搜索解决方案一段时间后,我发现了一个docker-compose.yml文件,该文件具有Jaeger Query,Agent,collector和Elasticsearch配

  • 摘要/问题 我参与了一个使用的项目。该项目启用了maven,当我从cli运行时,一切都很顺利。 该项目也可以在NetBeans中打开,所有内容都可以正常显示,但是当我在eclipse中打开该项目时,我看到一些与相关的错误。在spring缓存中。xml位于“网页”文件夹下。这让我觉得eclipse项目可能不会被认为是一个动态web项目,但请遵循以下说明:https://www.mkyong.com/

  • 但是如果我让Spring Boot自动配置JOOQ,那么我应该把这个设置放在哪里呢? 基本的Spring Boot配置似乎只支持在中设置,如jooq-spring-boot-example所示。 我尝试将放入中,但这对SQL没有任何影响。 有没有办法自定义Spring boot JOOQ配置,而不必自己配置JOOQ? 我使用的是SpringBoot 2.1.7.Release和JOOQ 3.11.

  • 问题内容: 以前的配置以前是用代码硬编码的,后来它被外部化为.property文件(以避免硬编码的值,避免为了更改配置而更改代码等),然后将其移至XML(用于为了更标准化,没有错误..等) 现在,在阅读Spring 3中的@Configuration时,似乎我们再次回到了最初的方法。 为什么我们要对代码中的配置进行硬编码而不是将其外部化? 问题答案: 有一些优点 Java是类型安全的。如果你正在配