spring gets the bean method in the container and calls the method (jump method 1)
controller layer
@Controller("userController")
public class UserController {
@Autowired
private UserService userservice;
/*@RequestMapping(value="/insert")
public int insert(String id,String name,String age) {
return userservice.insert(id,name, age);
}*/
@RequestMapping(value="/findByName")
@ResponseBody
public String findByName() {
User u = userservice.findByName();
System.out.println(u.toString());
if("1231231243".equals(u.getId())) {
UserController obj =(UserController)SpringUtil.getObject("userController");//获取的bean对象可以调用对象的方法
User us = obj.findByRight();
return us.toString();
}
return u.toString();
}
@RequestMapping(value="/findRightName")
@ResponseBody
public User findByRight() {
User u = new User();
u.setPassword("fasfa");
u.setId("12333333333333333");
return u;
}
}
//Get the tool class of the annotated class in spring
//获取spring中带注解的类的工具类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements ApplicationContextAware{
public static ApplicationContext ct;
//spring中获得bean
public static Object getObject(String beanId){
return ct.getBean(beanId);
}
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
SpringUtil.ct = arg0;
}
}
3. Note, there may be errors in transaction management @Transational. If it appears, add the following configuration to spring's xml
<aop:aspectj-autoproxy expose-proxy="true"/>
If it is a springboot project, add it in the SpringBoot entry class
@EnableAspectJAutoProxy(exposeProxy = true)
4. Redirection method (jump method 2)
@Controller
public class UserController {
@Autowired
private UserService userservice;
@RequestMapping(value="/findByName")
public String findByName(String name) {
User u = userservice.findByName();
System.out.println(u.toString());
return "redirect:/findRightName";
}
@RequestMapping(value="/findRightName")
@ResponseBody
public User findByRight() {
User u = new User();
u.setPassword("fasfa");
u.setId("12333333333333333");
return u;
}
}