2017-05-19 19 views
0

PostGres JSONBオブジェクトをJavaオブジェクトに変換するRowMapperを実装するクラスBusinessRowMapperがあります。RowMapperを実装するクラスのSpring管理bean注入

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を渡すよりも、このBusinessRowMapper豆にPersonUtilityビーンの注入を春を管理しないのですか?

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

答えて

1

あなたはクラスの上に@componentを追加するのSpring BeanとしてPersonUtilityクラスを定義することができます。

次に、あなたは動作しませんでしたBusinessRowMapper

@Component 
    public class BusinessRowMapper implements RowMapper<PersonDetails> { 

    @Autowired 
    private PersonUtility utils; 


    ... 


    } 
+0

のフィールドをautowireすることができます。また、このMapper Beanを - getNamedParameterJdbcTemplate()から呼び出すにはどうすればよいですか?query( ConstantsV4.RETRIEVE_PERSON_DETAIL_QUERY、params、 new BusinessRowMapper(ユーティリティ)); – user842122

関連する問題