SpringBoot实现其他普通类调用Spring管理的Service,dao等bean

实现其他普通类调用Spring管理的Service、DAO等Bean,可以使用Spring提供的上下文(ApplicationContext)对象,通过该对象获取Bean实例,从而实现Bean的调用。其中,SpringBoot在启动时会自动装载ApplicationContext对象,因此我们只需要获取ApplicationContext即可使用这个功能。

下面是实现过程:

1.在普通的Java类中注入ApplicationContext对象

注入ApplicationContext对象需要使用到Spring提供的注解@Component,我们只需要在普通Java类上标注这个注解,然后通过构造函数注入ApplicationContext对象即可。代码示例如下:

import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

@Component
public class MyClass {

    private final ApplicationContext applicationContext;

    public MyClass(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
    }
}

上面示例中,使用@Component标注了MyClass类,表示这是一个Spring管理的Bean,然后通过构造函数注入了ApplicationContext对象。

2.在普通的Java类中获取目标Bean对象

获取Bean对象使用的是ApplicationContext对象的getBean方法,该方法需要传入一个字符串参数,该参数表示目标Bean的名称(或ID)。示例代码如下:

import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

@Component
public class MyClass {

    private final ApplicationContext applicationContext;

    public MyClass(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
    }

    public void doSomething() {
        MyService myService = (MyService)applicationContext.getBean("myService");
        myService.someMethod();
    }
}

上面示例中,通过applicationContext.getBean方法获取了名称为"myService"的Bean,然后将其强制转换为MyService类型,最后调用MyService的someMethod方法。

除此之外,我们还可以通过注解@Autowired,将需要调用的Bean对象注入到普通Java类中,示例代码如下:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MyClass {

    @Autowired
    private MyService myService;

    public void doSomething() {
        myService.someMethod();
    }

}

上面示例中,通过@Autowired注解注入了MyService对象到MyClass类中,然后直接调用MyService的someMethod方法即可。

综上所述,以上是通过两个示例详细讲解了在SpringBoot中实现普通Java类调用Spring管理的Service、DAO等Bean的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot实现其他普通类调用Spring管理的Service,dao等bean - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • mybatis分页效果实现代码

    下面我来详细讲解一下mybatis分页效果实现代码的完整攻略。 什么是mybatis分页? mybatis分页是指将查询出来的结果集分成一定数量的小部分,每次只显示其中的一部分,以此来获得更加良好的用户体验。在使用mybatis进行开发时,我们可以利用一些已有的插件或者自定义代码来实现mybatis分页。 基于插件实现mybatis分页 在mybatis中,…

    Java 2023年5月20日
    00
  • Midjourney:一步一步教你如何使用 AI 绘画 MJ

    一步一步如何使用 Midjourney 教程:教学怎么用 MJ? 一、Midjourney(MJ)是什么? Midjourney是一款使用文字描述来生成高质量图像的AI绘画工具。这篇文章主要介绍了Midjourney及其用途,并针对Midjourney的使用提供了一些指南。该工具可以帮助人们更快速、更容易地创建图像。 与市场上的其他AI绘画工具相比,Midj…

    Java 2023年4月22日
    00
  • 解析使用jdbc,hibernate处理clob/blob字段的详解

    下面是关于“解析使用jdbc,hibernate处理clob/blob字段的详解”的完整攻略: 解析使用jdbc,hibernate处理clob/blob字段的详解 概述 Clob和Blob是数据库中的大字段类型,往往用于存储大量的文本或二进制内容。在Java程序中通过JDBC和Hibernate框架都可以处理这两种类型的字段。 使用JDBC处理Clob/B…

    Java 2023年5月20日
    00
  • Kotlin基础教程之Run,标签Label,函数Function-Type

    Kotlin基础教程之Run run 函数是Kotlin中的一个高阶函数,主要用于在一个对象上调用一个代码块,并且该对象作为 lambda 表达式的上下文对象。该函数的返回值是代码块中最后一个表达式的值,或者一些额外指定的结果(通过 lambda 返回)。 使用 run 函数的语法如下: val result = someObject.run{ //在这里使…

    Java 2023年5月26日
    00
  • 组织树查询-Jvava实现(递归)

    1.首先查询出组织机构 就是一个简单的查询 List<Dept> deptList = mapper.getDeptList(); Map<Long, OrgNode> nodeMap = new HashMap<>(); List<Long> rootIds = new ArrayList<>()…

    Java 2023年4月19日
    00
  • Java如何获取Date的“昨天”与“明天”示例代码

    获取Date的“昨天”与“明天”可以通过以下步骤实现: 步骤一:获取当前日期 首先,我们需要获取当前的日期。Java中可以使用java.util.Date类来表示日期时间。可以通过new Date()方法获取到当前的日期: Date today = new Date(); 步骤二:计算“昨天” 要计算“昨天”,我们需要通过java.util.Calendar…

    Java 2023年5月20日
    00
  • 浅谈Java中的class类

    我来为大家详细讲解一下Java中的class类。 什么是class类 在Java中,class是一种特殊的数据类型,用于描述Java程序中的对象。Java中所有的对象都是基于class创建的。每个class定义了一组数据和方法,就是一种封装数据和行为的机制。 class类的详细组成 一个class通常包含以下几个部分: 类名:用来代表该类的唯一名称,类名通常…

    Java 2023年5月26日
    00
  • Java 基础语法 异常处理

    Java 基础语法 异常处理 在Java编程中,异常处理是必不可少的部分。因为我们写的程序难免出现一些不可预见的情况,比如文件丢失、网络连接中断等等。这些情况,称之为异常。如果没有进行适当的处理,会导致程序的崩溃,影响整个程序的运行。因此,我们需要通过异常处理技术来保证程序的健壮性和可靠性。 异常的定义 异常是在程序中发生的不正常情况,它中断了程序的正常执行…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部