当前位置: 首页 > 知识库问答 >
问题:

在实现RowMapper的类中实现Spring管理的bean注入

长孙玉泽
2023-03-14

我有一个类BusinessRowMapper,它实现了将PostGres JSONB对象转换为Java对象的RowMapper。

BusinessRowMapper implements RowMapper<PersonDetails>

它覆盖mapRow

   public class BusinessRowMapper implements RowMapper<PersonDetails> {

    private PersonUtility utils;

    public BusinessRowMapper(PersonUtility utils) {
        super();
        this.utils = utils;
    }


    public PersonDetails mapRow(final ResultSet rs, final int rowNum) throws SQLException {
        PersonDetails personDetail = utils.unMarshallAndConvertData(rs
                .getString(ConstantsV4.COLUMN_CUST_DTLS_JSON_DOC));
        return personDetail;
    }
}

现在,我如何在这个BusinessRowMapper Bean中进行PersonUtility Bean的Spring管理注入,而不是将实用程序Bean作为构造函数参数传递给BusinessRowMapper?

getNamedParameterJdbcTemplate().query(
                        ConstantsV4.RETRIEVE_PERSON_DETAIL_QUERY, params,
                        new BusinessRowMapper(utility));

共有1个答案

殳阳飙
2023-03-14

您可以将PersonUtility类定义为Springbean,在类上添加组件。

然后您可以在BusinessRowMapper中自动装配字段

@Component 
    public class BusinessRowMapper implements RowMapper<PersonDetails> { 

    @Autowired 
    private PersonUtility utils; 


    ... 


    } 
 类似资料:
  • 一、注入实现类的bean(控制台展示的结果符合预期) 二、注入interface的bean 三、背景 在实现 设计模式 -> 工厂模式 -> 工厂方法模式。准备了 工厂的interface和产品的interface。通过工厂返回对应的、需要的产品。 四、问题 1、学spring的时候,就是注入interface,根据bean的名字找到对应的实现类,如图,我已经指定了是interface的bean是

  • 我在的实现类中注入的任何CDI bean都被证明为null。惰性模型实现类本身是一个CDIbean,范围。它看起来像这样: 在注入lazymodel实现bean类时,我确实在eclipse中收到了来自Java的警告。警告类似于lazymodel类bean不能被容器代理,因为它不包含非私有的无参数构造函数,并且bean不是普通的作用域bean(类似于此)。 还有一个问题,在LazyDataModel

  • 主要内容:1. 开启注解事务,2. 使用 @Transactional 注解,示例 1在《 Spring基于XML实现事务管理》一节中,我们通过 <tx:advice> 元素极大的简化了 Spring 声明式事务所需的 XML 配置。但其实我们还可以通过另一种方式进行进一步的简化,那就是“使用注解实现事务管理”。 在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用注解实现,以进一步降低代码之间的耦合度。下面我们就来介绍下,通过注解是如何实现声明式事务管理。 1

  • 我们将一个spring bean实现为单例(默认)。此bean用作Web服务的一部分,当触发多个同时请求时,responseholder(单例bean)在尝试检索时抛出NullPointerException。这通常发生在响应是build的时候,然后在发送回原始响应之前触发了一个新的请求。 这可能是bean的单点实现造成的吗?如果是的话,就不会改成原型来解决我的问题了。总是用新操作员启动它怎么样?

  • 我正在Spring Boot中使用@primary和@qualifier注释学习autowiring。我能够理解@primary将带注释的类连接为依赖项,如果发现了多个令人满意的类,@qualifier可以提供帮助。 当我在名为“Bike”的autowired依赖项上添加并在Car上添加和在Bike上添加时,它将提取Car。但是,当我在自行车和汽车上交换时(例如,在汽车上-,反之亦然),它会捡起自

  • 我有一个实现两个接口的bean。准骨骼代码如下: 在AppConfig中,我指定了以下内容: 解决办法是引入一个扩展和的新接口,然后让实现它。但是,我不愿意因为框架的限制而改变我的设计。