首页 > 其他分享 >springboot2 @Mapper注解问题

springboot2 @Mapper注解问题

时间:2023-11-09 20:14:24浏览次数:37  
标签:DeptMapper Mapper deptMapper Spring 接口 Bean springboot2 注解

@Mapper

public interface DeptMapper {

      Dept getById(Integer id);

}

问:这段代码是把这个接口注入到spring的bean容器当中去了,但是spring的bean容器不是存的实例化对象吗?

答:

在Spring框架中,将一个类(或接口)注入到Spring的容器中,即将其声明为一个Bean。这样,Spring容器会负责创建该Bean的实例,并将其管理起来。
对于@Mapper注解的接口,它通常是使用MyBatis框架来进行数据库操作的一种方式。当您在Spring Boot应用程序中使用@Mapper注解并将接口声明为Bean时,实际上是将MyBatis的Mapper接口交给Spring容器管理。
尽管MyBatis的Mapper接口不需要实现类,但是在运行时,Spring会针对这些带有@Mapper注解的接口生成代理对象,并将其纳入Spring的IOC容器中进行管理。这样,其他的组件可以通过依赖注入的方式使用这些Mapper接口,而不关心具体的实现细节。
通过将DeptMapper接口声明为Spring Bean,您可以在其他组件中使用DeptMapper进行注入,类似于以下示例:
@Service
public class DeptService {
private final DeptMapper deptMapper;

public DeptService(DeptMapper deptMapper) {
this.deptMapper = deptMapper;
}

// 可以在这里使用deptMapper进行数据库操作
}

在上述示例中,DeptService通过构造函数注入了DeptMapper。Spring会自动将DeptMapper的代理对象注入到DeptService中,以便在DeptService中可以使用deptMapper执行数据库操作。
因此,虽然Spring的容器存储的是Bean的实例化对象,但在某些情况下,这些对象是通过代理模式动态生成的,以便提供特定的功能,如MyBatis的Mapper接口。

 

标签:DeptMapper,Mapper,deptMapper,Spring,接口,Bean,springboot2,注解
From: https://www.cnblogs.com/gagaya2/p/17822668.html

相关文章

  • Spring 缓存注解这样用,太香了!
    作者最近在开发公司项目时使用到Redis缓存,并在翻看前人代码时,看到了一种关于@Cacheable注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位。Spring缓存常规配置SpringCache框架给我们提供了@Cacheable注解用于缓存方法返回内容。但......
  • No MyBatis mapper was found in ‘[SpringBoot启动类所在路径]‘ package 原因解析及
    NoMyBatismapperwasfoundin‘[SpringBoot启动类所在路径]‘package原因解析及解决方案NoMyBatismapperwasfoundin'[XXX]'package友情提示:搜到这篇文章的,一般是急于解决这个问题的,看下常见原因排除后,可以忽略分析过程直接看解决方案,我自己出现这个问题的原因主......
  • springboot2 springboot 的引导类
    SpringBoot工程提供引导类用来启动程序,SpringBoot工程启动后创建并初始化Spring容器 packagecom.itheima;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.context......
  • Java jackson常用注解汇总
    提起jackson,在日常使用中,由于涉及到各种序列化和反序列化的处理,就不能不提注解,了解注解的常用方式可以极大地方便我们处理序列化,今天分享一些在使用jackson中涉及到的注解。目录1.@JsonProperty-字段命名2.@JsonPropertyOrder-字段序列化顺序3.@JsonAlias-字段别名,反序......
  • Spring 3.0 注解注入详解
    一、各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource)     @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。要使@Autowired能够工作,还需要在配置文件中......
  • @RequestBody接收Json参数 用自定义注解对Vo对象中Date类型日期格式校验
    @RequestBody接收Json参数|用自定义注解对Vo对象中Date类型日期格式校验问题描述昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题。要求输入的日期格式是:yyyy-MM-ddHH:mm:ss,Vo中使用的注解如下:@DateTimeFormat(pattern=”yyyy-MM-ddHH:mm:ss”)测试同事输入下面两种......
  • Java拾贝第十九天——注解
    Annotation注解(Annotation)是一种可以作用于类、属性或方法的,带有特定功能的,特殊的"注释"。且注解不影响程序的运行:不论是否使用注解,代码都可以正常执行。Annotation接口定义如下publicinterfaceAnnotation{ booleanequals(Objectobj); inthashCode(); StringtoSt......
  • TestNG的几种注解顺序查看
    测试代码:packagecom.soos.apps.selenium.apply;importorg.testng.annotations.*;@TestpublicclassTestDemo{@BeforeMethodpublicvoidbeforeMethod(){System.out.println("beforeMethod");}@AfterMethodpublicvoid......
  • 一文带你掌握JPA实体类注解
    一文带你掌握JPA实体类注解−目录基本注解@Entity@Table@Basic(未加注解的默认注解)@Transient@Column@Id@GeneratedValue@GenericGenerator其他注解@Enumerated@Temporal@DynamicInsert、@DynamicUpdate@Access复合主键@EmbeddedId+@Embeddable@IdClass@Embedded+@Attribut......
  • SpringBoot通过自定义注解+反射机制比较两个对象不同的属性值
    publicclassFieldComparisonUtil{/**•直接返回一个新的对象,并且对象的值只有被修改的部分••@paramold•@paramsource•@paramisParent•@paramtarget目标对象•@return/**•@paramold进行属性比较的原始数据•@paramsource进行属性比......