框架 controller调用dao层,dao层调用service层。
controller代码
@Controller
@RequestMapping("/alpha")
public class AlphaController {
@Autowired
private AlphaService alphaService;
@RequestMapping("/hello")
@ResponseBody
public String sayHello(){
return "hello,springboot";
}
@RequestMapping("/data")
@ResponseBody
public String getData(){
return alphaService.find();
}
}
用@Controller来代存进容器里。 @RequestMapping是网页访问地址
@Autowired是调用service层的。 @ResponseBody是指返回字符串,而不是网页。
dao代码
dao层的接口
public interface AlphaDao {
String select();
}
@Repository 是起别名的注解
@Repository("alphaHibernate")
public class AlphaDaoHibernateImpl implements AlphaDao{
@Override
public String select() {
return "Hibernate";
}
}
@Primary 是 当两个Impl的方法名都是select的时候,优先使用Mybatis的,所以后面如果有方法调用select方法,会返回“Mybatis”。如果要返回“Hibernate” 则需要在用@Qualifier
@Repository
@Primary // 优先执行
public class AlphaDaoMybatisImpl implements AlphaDao{
@Override
public String select() {
return "Mybatis";
}
}
这是测试类引用 dao。需要用@Qualifier引用@Repository 的名字 即表示该用的是该名的dao。
@Autowired
@Qualifier("alphaHibernate")
private AlphaDao alphaDao;