Springboot反射使用時spring注入及び切面無効
げんはんしゃよびだしほうしき
Springのbeanはspringコンテナによって管理されているため、上記の方式を使用するとbeanが空でありaopが失効する場合があるため、以下に修正する.
beanをspringに返せばいい
// jobClass
// jobMethod
Class c = Class.forName(jobClass);
Constructor con = c.getConstructor();
Object obj1 = con.newInstance();
Method method = c.getMethod(jobMethod, GlobalMessage.class);
Object o = method.invoke(obj1, globalMessage);
Springのbeanはspringコンテナによって管理されているため、上記の方式を使用するとbeanが空でありaopが失効する場合があるため、以下に修正する.
@Autowired
private ApplicationContext applicationContext;
//
Class cla = Class.forName(jobClass);
// Spring Bean
Object bean = applicationContext.getBean(cla);
Method method = cla.getMethod(jobMethod, GlobalMessage.class);
// sayHello
Object o = method.invoke(bean, globalMessage);
beanをspringに返せばいい