Можно ли вызвать службу внутри @Repository? - PullRequest
0 голосов
/ 15 мая 2019

Я новичок в java spring-mvc current. У меня есть @Controller, который вызывает @Repository, и я хочу использовать @Service внутри @Repository. Возможно ли это или как правильно?

Я попытался просто поместить Службу в репозиторий

   @RequestMapping(value = "/activa-servicio", params={"cupon"}, method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE})
    @ResponseBody
    public String activaServicio(HttpServletRequest request,@RequestParam(value="cupon") String cupon) throws IOException {

        String json=publicDAO.activaServicio(cupon);

        System.out.println(json);
        return json;
    }

@Repository
public class PublicDAO {

    @Autowired
    JdbcTemplate jdbcTemplate;
    EmailService emailService;

 public String activaServicio(String cupon) {
  emailService.getActivationConfirmation();
}

Я ожидаю, что EmailService запущен, но текущее исключение NULL для EmailService

1 Ответ

2 голосов
/ 15 мая 2019

EmailService - ноль, потому что вы никогда не устанавливаете его. @Autowired аннотация применяется только к JdbcTemplate jdbcTemplate.

Кроме того, внедрение в поле не рекомендуется, поэтому лучше всего использовать внедрение в конструктор. Это также менее многословно.

private JdbcTemplate template;
private EmailService service;

@Autowired
public PublicDao(JdbcTemplate jt, EmailService es) {
  this.template = jt;
  this.service = es;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...