zoukankan      html  css  js  c++  java
  • springboot中@Mapper和@Repository的区别

    @Mapper和@Repository是常用的两个注解,两者都是用在dao上,两者功能差不多,容易混淆,有必要清楚其细微区别;

    区别:

    @Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中:如下,在启动类中配置扫描地址:

    @SpringBootApplication   //添加启动类注解
    @MapperScan("com.xz.springboot.mapper")  //配置mapper扫描地址
    public class application
    {
        public static   void main(String[] args)
        {
            SpringApplication.run(application.class,args);
        }
    }

    @Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。

    也就是@Repository多了一个配置扫描地址的步骤;

    补充:

    如果在接口上@Mapper,然后再在 xml中的namespace指向mapper,那么spring就能动态生成一个Mapper的bean,然后你在serviceImpl中的

    @Autowired

    pravate XXXMapper xxmapper;

    就会被这个bean注进去。

    如果在DaoImpl中加了@Repository,那么在spring的扫包机制下,也会生成这个dao的bean,注入你serviceImpl中的

    @Autowired

    private xxxDao   xxxdao;

    中去。这个机制就像@controller,@Service什么的一样的。

    最后,一般不用@Repository,在spring boot中通常用@Mapper

  • 相关阅读:
    Git的基本使用(只是基本使用)
    GET与POST的比较
    GO开发:链表
    阿里云啊
    以太坊区块和交易存储
    以太坊私有链部署合约
    以太坊go-ethereum签名部分源码解析
    GO开发:接口
    区块链开发:以太坊网络
    Go开发[八]goroutine和channel
  • 原文地址:https://www.cnblogs.com/sitian2050/p/11872261.html
Copyright © 2011-2022 走看看