2015-06-27 24 views
5

içinde boştur. userService otomatik kablolu içeren bileşenim. Sorun, başlatılmadı, her zaman boş. Kullanıcı servisi Kontrolörlerden düzgün çalışıyor.Spring @Outowired değişken, @Component

Bileşenin içinde otomatik telsiz servisine ne yapılmalı?

package com.boro.orange.component; 

@Component("modelUtil") 
public class ModelUtil { 
    @Autowired 
    private UserService userService; //null 

    static Logger log = Logger.getLogger(ModelUtil.class.getName()); 

    public ModelMap warp(ModelMap model) { 

     Object springUserObject = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 
     if (springUserObject == null || !(springUserObject instanceof User)) { 
      return model; 
     } 
     User springUser = (User) springUserObject; 
     String userEmailAddress = springUser.getUsername(); 
     com.boro.orange.entity.User signedInUser = userService.getUserByEmailAddress(userEmailAddress); 

     if (signedInUser == null) { 
      String errorMsg = "Failed to find user by email address[" + userEmailAddress + "]"; 
      log.error(errorMsg); 
      model.addAttribute("Error", errorMsg); 
      // TODO add error messages 
     } else { 
      String userFirstName = signedInUser.getFirstName(); 
      String userLastName = signedInUser.getLastName(); 

      model.addAttribute("userFirstName", userFirstName); 
      model.addAttribute("userLastName", userLastName); 
     } 

     return model; 
    } 
} 

root-context.xml

:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

    <context:annotation-config/> 

    <context:component-scan base-package="com.boro.orange.dao"/> 
    <context:component-scan base-package="com.boro.orange.service"/> 
    <context:component-scan base-package="com.boro.orange.component"/> 
    <context:component-scan base-package="com.boro.orange.controller"/> 

    <import resource="data.xml"/> 

</beans> 
+0

UserService üzerinde bir Servis ek açıklaması var mı? Bir Niteleyici ek açıklaması ekleyebilir misiniz? – duffymo

+0

@duffymo, yes, UserService diğer @ Denetçi sınıflarından iyi çalışıyor. – Steve

+0

Bu koddan yanlış yaptığınızı göremiyorum. – duffymo

cevap

0

Sen bileşen tarama için tek tanımını kullanmalısınız. Sonuncusu, önceki tanımları geçersiz kılar.

<context:component-scan base-package="com.boro.orange"/> 
İlgili konular