Rumah  >  Soal Jawab  >  teks badan

java - suntikan spring adalah masalah batal

Seperti yang ditunjukkan dalam gambar:

@Component
public class UserArgumentResolver implements HandlerMethodArgumentResolver{

    @Autowired
    private RedisTemplate<String,User> redisTemplate;
    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        if(parameter.getParameterAnnotation(CurrentUser.class)!=null&& parameter.getParameterType()==User.class){
            return true;
        }
        return false;
    }

    @Override
    public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest webRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {
        HttpServletRequest request= (HttpServletRequest) webRequest.getNativeRequest();
       // todo
        return null;
    }
}

Selepas kelas yang dicipta melaksanakan HandlerMethodArgumentResolver, didapati bahawa contoh kacang yang disuntik ke dalamnya gagal Contoh redisTemplate di atas adalah batal apabila dijalankan, dan kelas lain dalam pakej yang sama adalah normal.
Sila beritahu saya apa yang menyebabkan suntikan kacang gagal.

phpcn_u1582phpcn_u15822712 hari yang lalu477

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-05-17 09:59:40

    Situasi UserArgumentResolver对象没有被IoC容器管理, 因为在@Autowired注解没有配置required=false的情况下spring发现没有该对象会直接抛出Exception, 不会出现注入null anda gunakan.

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-17 09:59:40

    Antara muka HandlerMethodArgumentResolver harus dibuat instantiated oleh musim bunga, bukan diurus oleh instantiation bekas IOC

    balas
    0
  • Batalbalas