Attualmente stiamo migrando un progetto Struts 1.1 in Spring 4.x.Java - Come combinare le annotazioni Validation e AOP e usarlo in Spring Controller?
Abbiamo convertito con successo la classe Action in Controller e formbean in Model e persino siamo in grado di convertire la convalida dei montanti in validazione Spring.
Ma siamo di fronte a un problema quando proviamo ad aggiungere AOP per tutti i controller. Lo scopo è aggiungere un registro per misurare il tempo impiegato per tutti i metodi del controller.
sotto è frammento di codice,
@Component
@Controller
public class LoginController {
@Autowired
private LoginValidator loginValidator;
@InitBinder
private void initBinder(WebDataBinder binder) {
binder.setValidator(loginValidator);
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String loginUser(@Valid @ModelAttribute Login form, BindingResult bindingResult) {
System.out.println("Entering loginController.loginUser method");
}
}
Utilizziamo il taglio a punto indicato qui per applicare AOP,
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Component
@Aspect
public class Logging {
@Pointcut("execution(* com.controller.*.*(..))")
public void businessLogicMethods() {}
@Around("businessLogicMethods()")
public Object logAround(ProceedingJoinPoint jp) {
System.out.println("around() is running!");
System.out.println(jp.getSignature().getName());
System.out.println(jp.getArgs());
Object obj = null;
try {
obj = jp.proceed();
} catch (Throwable e) {
e.printStackTrace();
}
System.out.println("******");
return obj;
}
}
O convalida o AOP sta lavorando alla volta. Se AOP non viene applicato, viene eseguita la convalida. Se aop viene applicato, viene attivato solo AOP.
Qualcuno può aiutare in questo?
Grazie ...
Sono in grado di replicare il problema. Qualcosa si strugge nel modo in cui stai usando gli aspetti. Controllo di una soluzione. Si prega di vedere se questo collegamento ti aiuterà. http: //forum.spring.io/forum/spring-projects/web/64867-controller-combine-con-aspetto-can-t-work .. – ArunM