0

String 引数を取る 1 つの RequestMapping メソッドを持つコントローラー クラスがあります。Spring AOP を使用してこの引数を渡したいのですが、失敗しました。値を出力しているときに null 値を取得しています。

以下に提供されているソリューションを試してみましたが、マップでは機能しますが、文字列では機能しません。

コントローラーメソッドの Spring AOP パス引数

@Controller
public class WelcomeController {
    @Autowired
    private FamilyService familyService;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView welcomePage(String welcomeMessage) {
        FamilyVO allFamilyMembers = familyService.getAllFamilyMembers();
        ModelAndView modelAndView = new ModelAndView("Index", "family", allFamilyMembers);
        List<String> familyMemberAges = new ArrayList<String>();
        for (int i = 0; i <= 100; i++) {
            familyMemberAges.add("" + i);
        }
        modelAndView.addObject("familyMemberAges", familyMemberAges);
        System.out.println(welcomeMessage);
        return modelAndView;
    }
}
@Component
@Aspect
public class WelcomeControllerAspect {
    @Before("execution(* com.kalavakuri.webmvc.web.controller.WelcomeController.welcomePage(..))")
    public void beforeWelcomePage(JoinPoint joinPoint) {
        joinPoint.getArgs()[0] = "Hellow";
        System.out.println(joinPoint.getArgs().length);
        System.out.println("Before welcomepage");
    }
}

Controllerクラスで印刷すると値「Hello」が期待されますが、nullが印刷されます。

4

2 に答える 2