我有一个类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));
您可以将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中,我指定了以下内容: 解决办法是引入一个扩展和的新接口,然后让实现它。但是,我不愿意因为框架的限制而改变我的设计。