0

初めて私は言います、私はSpringにまったく慣れていません...

トランザクションでなければならないメソッドがありますが、それらは異なるクラスにあります。これらのメソッドは、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;
}

}

これはユーザーコントローラーです:

@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 Bean 定義ファイルでは、generalService を次のように定義しています。

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

このように、プログラムは「generalService is null」の場合に入りますが、その理由はわかりません! ご覧のとおり、「//usuarioService.addUsuario(usuario);」というコメント行があります。それは完璧に機能しました。助けてください。

ありがとうございました。

4

1 に答える 1

0

UsuarioService のみを自動配線しました。

そして、あなたのダオスはまったく配線されていません。したがって、次のようになります。

@Controller
public class UsuarioControllers {
@Autowired
UsuarioService usuarioService;
@Autowired
GeneralService generalService;
于 2013-09-09T11:37:34.093 に答える