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

SpringBoot在自定義類中調用service層mapper層方式

 更新時間:2025年03月27日 09:50:01   作者:liudachu  
這篇文章主要介紹了SpringBoot在自定義類中調用service層mapper層方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot在自定義類中調用service層mapper層

最近在整合webscoket,因為在websocket中需要自定義websocket類,而在后端發(fā)送的信息的時候,需要調用service層mapper層的代碼,或者自己編寫一個工具類,這里在自定義類中使用 @Autowired會報空指針異常,所以不能使用普通的注入方式,百度上能用的教程很多,我這里寫一個我嘗試過能用的。

解決方案

1.上代碼

@Component
public class ServerHandler extends IoHandlerAdapter {
    @Autowired
    protected HealthDataService healthDataService;
    private static ServerHandler  serverHandler ;
    @PostConstruct //通過@PostConstruct實現(xiàn)初始化bean之前進行的操作
    public void init() {  
        serverHandler = this;  
        serverHandler.healthDataService = this.healthDataService;        
        // 初使化時將已靜態(tài)化的testService實例化
    }  
    //測試調用
    public void test(){
        serverHandler.healthDataService.<你的service層方法>;
    }

2.說明

  • 將需要調用Spring的Service層的類通過@Component注解為組件加載;
  • 同樣通過@Autowired獲取Service層的Bean對象;
  • 為類聲明一個靜態(tài)變量,方便下一步存儲bean對象;
  • 劃重點:通過注解@PostConstruct ,在初始化的時候初始化靜態(tài)對象和它的靜態(tài)成員變量healthDataService,原理是拿到service層bean對象,靜態(tài)存儲下來,防止被釋放。

導入mapper層同上

/**
	我自己編寫的工具類
*/
@Component
public class GetChartDataUtils {

    private static GetChartDataUtils getChartDataUtils ;

    @Autowired
    private OrderMapper orderMapper;

    @PostConstruct //通過@PostConstruct實現(xiàn)初始化bean之前進行的操作
    public void init() {
        getChartDataUtils = this;
        getChartDataUtils.orderMapper=this.orderMapper;
        // 初使化時將已靜態(tài)化的orderMapper實例化
    }

    public static Trend<PosMonth> getOrgMonthTrend() {
        Trend<PosMonth> posMonthTrend = new Trend<>();
        posMonthTrend.setTitle("客源分析趨勢");
        posMonthTrend.setBase(300);
        posMonthTrend.setUnit("萬");
        List<PosMonth> posMonths = new ArrayList<PosMonth>();
        //封裝每個出發(fā)地點每個月的數(shù)據
        PosMonth zzgs = new PosMonth("鄭州工商學院",getChartDataUtils.orderMapper.queryOriginMonthCount("鄭州工商學院"));//出發(fā)地為鄭州工商學院每個月的數(shù)據
        PosMonth zzjt = new PosMonth("河南交通學院",getChartDataUtils.orderMapper.queryOriginMonthCount("河南交通學院"));//出發(fā)地為河南交通學院每個月的數(shù)據
        PosMonth zkzx = new PosMonth("周口中心站",getChartDataUtils.orderMapper.queryOriginMonthCount("周口中心站"));//出發(fā)地為周口中心站每個月的數(shù)據
        PosMonth zzly = new PosMonth("鄭州旅游學院",getChartDataUtils.orderMapper.queryOriginMonthCount("鄭州旅游學院"));//出發(fā)地為鄭州旅游學院每個月的數(shù)據
        //數(shù)據封裝進趨勢圖
        posMonths.add(zzgs);
        posMonths.add(zzjt);
        posMonths.add(zkzx);
        posMonths.add(zzly);
        posMonthTrend.setData(posMonths);
        return posMonthTrend;
    }

    public static Trend<PosMonth> getDisMonthTrend() {
        Trend<PosMonth> posMonthTrend = new Trend<>();
        posMonthTrend.setTitle("去向分析趨勢");
        posMonthTrend.setBase(300);
        posMonthTrend.setUnit("萬");
        List<PosMonth> posMonths = new ArrayList();
        //封裝每個去向地點每個月的數(shù)據
        PosMonth zzgs = new PosMonth("周口火車站",getChartDataUtils.orderMapper.queryDestinationMonthCount("周口火車站"));//目的地為周口火車站每個月的數(shù)據
        PosMonth zzjt = new PosMonth("周口市中心站",getChartDataUtils.orderMapper.queryDestinationMonthCount("周口市中心站"));//目的地為周口市中心站每個月的數(shù)據
        PosMonth zkzx = new PosMonth("周口市淮陽",getChartDataUtils.orderMapper.queryDestinationMonthCount("周口市淮陽"));//目的地為周口市淮陽每個月的數(shù)據
        PosMonth zzly = new PosMonth("周口市項城",getChartDataUtils.orderMapper.queryDestinationMonthCount("周口市項城"));//目的地為周口市項城每個月的數(shù)據
        //數(shù)據封裝進趨勢圖
        posMonths.add(zzgs);
        posMonths.add(zzjt);
        posMonths.add(zkzx);
        posMonths.add(zzly);
        posMonthTrend.setData(posMonths);
        return posMonthTrend;
    }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring中的ClassPathXmlApplicationContext源碼詳解

    Spring中的ClassPathXmlApplicationContext源碼詳解

    這篇文章主要介紹了Spring中的ClassPathXmlApplicationContext源碼詳解,ApplicationContext的主要實現(xiàn)類是ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,前者默認從類路徑加載配置文件,后者默認從文件系統(tǒng)中裝載配置文件,需要的朋友可以參考下
    2023-12-12
  • Java使用easypoi快速導入導出的實現(xiàn)

    Java使用easypoi快速導入導出的實現(xiàn)

    這篇文章主要介紹了實現(xiàn)Java使用easypoi快速導入導出的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 如何導入spring源碼到IDEA

    如何導入spring源碼到IDEA

    這篇文章主要介紹了如何導入spring源碼到IDEA,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • JAVA中關于Long類型返回前端精度丟失問題處理辦法

    JAVA中關于Long類型返回前端精度丟失問題處理辦法

    這篇文章主要介紹了后端JavaBean的id屬性從Long類型改為雪花算法后出現(xiàn)的精度丟失問題,解決方案包括將id字段類型改為字符串或使用Jackson序列化方式,需要的朋友可以參考下
    2024-11-11
  • java8 計算時間差的方法示例

    java8 計算時間差的方法示例

    這篇文章主要介紹了java8 計算時間差的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 解決JDK版本沖突顯示問題(雙版本沖突)

    解決JDK版本沖突顯示問題(雙版本沖突)

    這篇文章主要介紹了解決JDK版本沖突顯示問題(雙版本沖突),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 一篇文章帶你深入了解Java對象與Java類

    一篇文章帶你深入了解Java對象與Java類

    這篇文章主要給大家介紹了關于java中類和對象的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-08-08
  • springboot整合jsp,實現(xiàn)公交車站路線圖

    springboot整合jsp,實現(xiàn)公交車站路線圖

    這篇文章主要介紹了springboot整合jsp,實現(xiàn)公交車站路線圖的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01
  • 一篇文章告訴你JAVA Mybatis框架的核心原理到底有多重要

    一篇文章告訴你JAVA Mybatis框架的核心原理到底有多重要

    yBatis的底層操作封裝了JDBC的API,MyBatis的工作原理以及核心流程與JDBC的使用步驟一脈相承,MyBatis的核心對象(SqlSession,Executor)與JDBC的核心對象(Connection,Statement)相互對應
    2021-06-06
  • github上的java項目怎么運行(面向小白)

    github上的java項目怎么運行(面向小白)

    這篇文章主要介紹了github上的java項目怎么運行(面向小白),今天從github把我以前寫的一個小demo下載下來了,第一次下載項目,摸索了一個多小時,才運行起來,需要的朋友可以參考下
    2019-06-06

最新評論

哈巴河县| 石狮市| 馆陶县| 景东| 潮州市| 连山| 莎车县| 福泉市| 内乡县| 广州市| 堆龙德庆县| 教育| 成武县| 河源市| 深泽县| 罗山县| 临泽县| 舒城县| 龙口市| 高安市| 政和县| 海南省| 望奎县| 平原县| 临沭县| 宽甸| 延寿县| 寻甸| 金沙县| 大悟县| 西峡县| 十堰市| 清河县| 隆化县| 丹寨县| 上饶县| 石城县| 曲阜市| 密山市| 中超| 嘉兴市|