相关文章推荐
逆袭的围巾  ·  DLL 和 Visual C++ ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

If you want ScoreMapper instances to have ScoreCreator scoreCreator be injected with a Spring bean, the ScoreMapper instance itself must be a Spring bean, ie. created and managed by Spring

Or by adding @Component

You can define PersonUtility class as spring bean adding @component over the class.

But currently RowMapper is instantiated with new in jdbcTemplate.query :

jdbcTemplate.query(SQL, new Object[] {}, new MyRowMapper())

And I can't autowire Spring managed ObjectMapper inside

public class MyRowMapper implements RowMapper<Map<Integer, Type>> {
   @Autowired
   @Qualifier("myObjectMapper")
   ObjectMapper objectMapper;

How should I refactor current code to manage bean row mapper?

Have you annoted your MyRowMapper as @Component - if so, can you post the exception you are getting? – sudo Dec 16, 2019 at 16:16

RowMapper is a thread safe class. That means, it's single instance can be shared amongst multiple threads. So, that means, you can let it be a singleton class and let spring handle it's lifecycle (Using one of those annotation like @Component). And wherever you want to use it's instance, just autowire/inject existing instance rather than instantiating it every time (new)

@Component
public class MyRowMapper implements RowMapper<Map<Integer, Type>> {
   @Autowired
   @Qualifier("myObjectMapper")
   ObjectMapper objectMapper;

And then

class ASingletonClass(){
  @Autowired MyRowMapper myRowMapper;
  public MyRowMapper myAweSomeMethod(){
    return jdbcTemplate.query(SQL, new Object[] {}, myRowMapper)

Refer this Answer. It's in similar lines

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.