spring中两种方法调用,相互调转的问题。

spring获取容器中的bean方法,进行调用方法(跳转方法1)
controller层

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

//获取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.注意事项,可能会出现事物管理@Transational方面的错误。若出现则在spring的xml中加上如下配置

<aop:aspectj-autoproxy expose-proxy="true"/>

若是springboot项目,在SpringBoot 入口类中添加

@EnableAspectJAutoProxy(exposeProxy = true) 

4.重定向方法(跳转方法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;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七秒~车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值