The problem of invoking two methods in spring and reversing each other.

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;
	}
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324353608&siteId=291194637