2013-09-09 3 views
0

Кулака раза я сказать, я совершенно новый для весны ...служба не впрыскивается в контроллере весной 3

У меня есть метод, который должен быть транзакционным, но в разных классах. Эти методы получают некоторые параметры из приложения для Android. Итак, я написал GeneralServiceImp:

public class GeneralServiceImp implements GeneralService{ 

UserDao userDao; 
VehiculoDao vehicleDao; 
@Override 
@Transactional 
public String addUserAndVehicle(User user, Vehiculo vehiculo) { 
    System.out.println("Method addUserAndVehicle() invpked"); 
    userDao.addUser(user); 
    vehicleDao.addVehiculo(vehiculo); 
    return null; 
} 

public void setUsuarioDao(UserDao userDao) { 
    this.userDao = userDao; 
} 

public void setVehiculoDao(VehiculoDao vehicleDao) { 
    this.vehicleDao = vehicleDao; 
} 

} 

Это UserController:

@Controller 
public class UsuarioControllers { 

@Autowired 

UsuarioService usuarioService; 
GeneralService generalService; 
@RequestMapping("/usuario/add") 
@ResponseBody 
public String addUsuario(@ModelAttribute("usuario") 
User usuario,@ModelAttribute("vehiculo")Vehiculo vehiculo,BindingResult result){ 
    System.out.println("Petition received"); 
    if(usuario==null){ 
     System.out.println("Usuario is null"); 
    } 
    if(vehiculo==null){ 
     System.out.println("Vehiculo is null"); 
    } 
    try{ 
    //usuarioService.addUsuario(usuario); 
     if(generalService!=null){ 
     generalService.addUserAndVehicle(usuario, vehiculo); 
     }else{ 
      System.out.println("generalService is null"); 
      return "fail"; 
     } 
    }catch (DuplicateKeyException e){ 
     return "duplicated"; 
    } 
    return "ok"; 

} 

И в файле определения XML боб я имею generalService определяется следующим образом:

<bean name="generalService" class="com.goatsoft.appark.services.GeneralServiceImp"> 
<property name="usuarioDao" ref="userDao"/> 
<property name="vehiculoDao" ref="vehiculoDao"/> 
</bean> 

Thigs таким образом, программа вводит «generalService null», если, и я не знаю, почему! Если вы видите, есть прокомментированная строка «//usuarioService.addUsuario(usuario»; ». Это сработало отлично. Не могли бы вы мне помочь?

спасибо.

ответ

0

У вас есть только авторизованный сервис UsuarioService.

И ваши даос вообще не связаны. Так что это должно выглядеть так:

@Controller 
public class UsuarioControllers { 
@Autowired 
UsuarioService usuarioService; 
@Autowired 
GeneralService generalService; 
+0

Конечно ... Какая глупость! Теперь я полностью поддерживаю generalService и его работу. Кстати, мне не нужно было автоустанавливать Daos, и это действительно сработало. Спасибо за ответ! Я соглашусь, когда таймер позволяет мне :) – Fustigador