最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot如何實(shí)現(xiàn)調(diào)用controller和Service層方法

 更新時(shí)間:2025年03月08日 14:04:48   作者:北極的企鵝88  
文章介紹了在SpringBoot中如何在工具類(lèi)中調(diào)用Controller和Service層的方法,通過(guò)創(chuàng)建一個(gè)工具類(lèi)SpringUtil,并在Spring?Boot啟動(dòng)類(lèi)中進(jìn)行配置掃描注入,工具類(lèi)就可以訪問(wèn)Controller和Service層的方法

SpringBoot調(diào)用controller和Service層方法

說(shuō)明

  • 最近遇到一個(gè)問(wèn)題,如何在工具類(lèi)中去訪問(wèn)controller層與service層的方法。
  • 因?yàn)槠綍r(shí)在調(diào)用service層時(shí)都是在controller中,有配置掃描注入,spring會(huì)根據(jù)配置自動(dòng)注入所依賴(lài)的服務(wù)層。
  • 但因我們寫(xiě)的工具類(lèi)不屬于controller層,所以當(dāng)所寫(xiě)接口需要調(diào)用服務(wù)層是,常常會(huì)為NULL。

實(shí)現(xiàn)

1.創(chuàng)建一個(gè)工具類(lèi):SpringUtil

package com.ruoyi.web.controller.employment.utils;

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{
    private static ApplicationContext applicationContext = null;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        if(SpringUtil.applicationContext == null){
            SpringUtil.applicationContext  = applicationContext;
        }
    }


    //獲取applicationContext
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    //通過(guò)name獲取 Bean.
    public static Object getBean(String name){
        return getApplicationContext().getBean(name);
    }

    //通過(guò)class獲取Bean.
    public static <T> T getBean(Class<T> clazz){
        return getApplicationContext().getBean(clazz);
    }

    //通過(guò)name,以及Clazz返回指定的Bean
    public static <T> T getBean(String name,Class<T> clazz){
        return getApplicationContext().getBean(name, clazz);
    }
}

2.SpringBoot啟動(dòng)類(lèi)調(diào)用controller和service方法

package com.ruoyi;

import com.ruoyi.web.controller.employment.ProvportController1;
import com.ruoyi.web.controller.employment.ProvportController2;
import com.ruoyi.web.controller.employment.utils.SpringUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ApplicationContext;

/**
 * 啟動(dòng)程序
 * 
 * @author ruoyi
 */
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class RuoYiApplication
{
	//注入service
    private static TestService testService;
    //注入controller
    private static TestController testController;

    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(RuoYiApplication.class, args);
        ApplicationContext context = SpringUtil.getApplicationContext();
        testService= context.getBean(testService.class);
        testController= context.getBean(testController.class);
        //調(diào)用service方法
        testService.getService(); 
		//調(diào)用controller方法
        testController.getController();              
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實(shí)現(xiàn)計(jì)算器模板及源碼

    java實(shí)現(xiàn)計(jì)算器模板及源碼

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)計(jì)算器模板及源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 分布式系統(tǒng)下調(diào)用鏈追蹤技術(shù)面試題

    分布式系統(tǒng)下調(diào)用鏈追蹤技術(shù)面試題

    這篇文章主要為大家介紹了分布式系統(tǒng)下調(diào)用鏈追蹤技術(shù)面試問(wèn)題合集,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • Java中l(wèi)ist.foreach()和list.stream().foreach()用法詳解

    Java中l(wèi)ist.foreach()和list.stream().foreach()用法詳解

    在Java中List是一種常用的集合類(lèi),用于存儲(chǔ)一組元素,List提供了多種遍歷元素的方式,包括使用forEach()方法和使用Stream流的forEach()方法,這篇文章主要給大家介紹了關(guān)于Java中l(wèi)ist.foreach()和list.stream().foreach()用法的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 如何從官網(wǎng)下載Hibernate jar包的方法示例

    如何從官網(wǎng)下載Hibernate jar包的方法示例

    這篇文章主要介紹了如何從官網(wǎng)下載Hibernate jar包的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-04-04
  • Javaweb開(kāi)發(fā)中通過(guò)Servlet生成驗(yàn)證碼圖片

    Javaweb開(kāi)發(fā)中通過(guò)Servlet生成驗(yàn)證碼圖片

    這篇文章主要為大家詳細(xì)介紹了Javaweb開(kāi)發(fā)中通過(guò)Servlet生成驗(yàn)證碼圖片的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • 基于Java SSM框架實(shí)現(xiàn)簡(jiǎn)易的評(píng)教系統(tǒng)

    基于Java SSM框架實(shí)現(xiàn)簡(jiǎn)易的評(píng)教系統(tǒng)

    這篇文章主要介紹了通過(guò)Java SSM框架實(shí)現(xiàn)一個(gè)簡(jiǎn)易的評(píng)教系統(tǒng)的示例代碼,文中的代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-02-02
  • SpringCloud Gateway的熔斷限流配置實(shí)現(xiàn)方法

    SpringCloud Gateway的熔斷限流配置實(shí)現(xiàn)方法

    Spring Cloud Gateway支持通過(guò)配置熔斷和限流機(jī)制來(lái)保證服務(wù)的穩(wěn)定性和可用性,可通過(guò)Hystrix和Resilience4j兩種方式實(shí)現(xiàn)。Hystrix通過(guò)注解和配置文件實(shí)現(xiàn)熔斷限流,Resilience4j通過(guò)編程式配置實(shí)現(xiàn)
    2023-04-04
  • Spring事務(wù)失效的原因及解決方案

    Spring事務(wù)失效的原因及解決方案

    本文主要介紹了Spring事務(wù)失效的原因及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 詳解SpringBoot如何實(shí)現(xiàn)多環(huán)境配置

    詳解SpringBoot如何實(shí)現(xiàn)多環(huán)境配置

    在實(shí)際的軟件開(kāi)發(fā)過(guò)程中,一個(gè)應(yīng)用程序通常會(huì)有多個(gè)環(huán)境,pring?Boot?提供了一個(gè)非常靈活和強(qiáng)大的方式來(lái)管理這些環(huán)境配置,下面就跟隨小編一起學(xué)習(xí)一下吧
    2023-07-07
  • 深入理解Java8新特性之Stream API的終止操作步驟

    深入理解Java8新特性之Stream API的終止操作步驟

    Stream是Java8的一大亮點(diǎn),是對(duì)容器對(duì)象功能的增強(qiáng),它專(zhuān)注于對(duì)容器對(duì)象進(jìn)行各種非常便利、高效的 聚合操作(aggregate operation)或者大批量數(shù)據(jù)操作。Stream API借助于同樣新出現(xiàn)的Lambda表達(dá)式,極大的提高編程效率和程序可讀性,感興趣的朋友快來(lái)看看吧
    2021-11-11

最新評(píng)論

开阳县| 周口市| 隆尧县| 扎囊县| 乌兰察布市| 泸州市| 基隆市| 平安县| 万源市| 滨海县| 海门市| 兰溪市| 甘肃省| 迭部县| 潍坊市| 万山特区| 云浮市| 农安县| 泽库县| 鸡西市| 宣武区| 台州市| 峨眉山市| 保定市| 当涂县| 紫阳县| 舟山市| 保康县| 黄龙县| 青州市| 宁安市| 阜阳市| 广元市| 东光县| 白城市| 岱山县| 台东县| 阿鲁科尔沁旗| 达州市| 喀什市| 桦南县|