首页 > 其他分享 >执行main方法时调用server层或dao层方法

执行main方法时调用server层或dao层方法

时间:2023-08-26 13:55:05浏览次数:48  
标签:applicationContext dao getBean server user main 方法 public

因业务需要临时同步一个数据,一开始想着直接写个main方法执行一下同步方法就Ok了,结果在查询的时候直接报空指针错误,一下子就给我干懵逼了,没办法只好先写一个接口调这个方法,然后重新启动项目,然后外部访问执行一下,终于是同步过来了。(同步方法是一直都有的)

以上都是个人牢骚,下面是具体方法

项目框架:springboot

1、新建SpringUtil方法

public class SpringUtils implements ApplicationContextAware {
    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) {
        SpringUtils.applicationContext = applicationContext;
    }

    public static Object getBean(String name) {
        return applicationContext.getBean(name);
    }

    public static <T> T getBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }

    public static <T> T getBean(String name,Class<T> clazz){
        return applicationContext.getBean(name, clazz);
    }
}

 主要是用于获取对应的类

2、写main方法

@SpringBootApplication
public class test01 {
    public static void main(String[] args) {
        SpringApplication.run(test01.class, args);
        // 调用service层
//        UserService userService = SpringUtils.getBean(UserService.class);
//        List<User> users= userService.selectUserByCate("01");
//        for (User user:users) {
//            System.out.println(user.getUserId()+"=="+user.getUserNo()+"=="+user.getUserTitle());
//        }

        // 调用dao层
        UserMapper userMapper = SpringUtils.getBean(UserMapper.class);
        List<User> users = userMapper.selectUserByCategory("01","Y");
        for (User user:users) {
            System.out.println(user.getUserId()+"=="+user.getUserNo()+"=="+user.getUserTitle());
        }

        // 停止方法
        System.exit(0);
    }
}

我当前是直接新建一个Java执行,但是在任意地方写main方法也都可以,亲测Ok

Tips:执行这个方法必须要在对应Java里面引用  @SpringBootApplication  ,不然会报错。

这个相当于是直接启动了整个项目然后执行,我最后加上 System.exit(0); 就是为了让线程直接关掉

Tips2:新建Java文件执行的话在idea上不能正常删除,必须要把safe delete选项关掉才行

 不关会一直报错,没细追原因

 

标签:applicationContext,dao,getBean,server,user,main,方法,public
From: https://www.cnblogs.com/hm-123/p/17658730.html

相关文章

  • 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server
    前言基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s等方案的测试验证。考虑过使用二手服务器,比如DellR730,还搞了一套配置清单,如下:DellR7303.5尺寸规格硬盘CPU:2686v4*2内存:16g*8存储:480Gintelssd系统盘+6tsas希捷*2个数据盘RAID卡:h73......
  • 玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server
    前言基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s等方案的测试验证。考虑过使用二手服务器,比如DellR730,还搞了一套配置清单,如下:DellR7303.5尺寸规格硬盘CPU:2686v4*2内存:16g*8存储:480Gintelssd系统盘+6tsas希捷*2个数据盘RAID卡:h7......
  • sql Server利用其create脚本来创建表
    1--这是依据系统自动生成的create脚本,填入所需字段来创建表23USE[csnprod]4GO56/******Object:Table[dbo].[message_master]ScriptDate:2023/8/2512:57:06******/7SETANSI_NULLSON8GO910SETQUOTED_IDENTIFIERON11GO1213SET......
  • 安装celery后,提示WARNING/MainProcess...you should set broker_connection_retry_on_
    调用了Celery的config_from_object方法,并新建文件celery_config.py存放设置 在celery中设置broker_connection_retry_on_startup=True 效果没有提示了。 ......
  • sqlserver跨数据库查询
    方法一`execsp_droplinkedsrvloginpms,Nullexecsp_dropserverpmsexecsp_addlinkedserver@server='pms',--被访问的服务器别名@srvproduct='',@provider='SQLOLEDB',@datasrc=''--要访问的服务器execsp_addlinkedsrvlogin'pms�......
  • 【SQL Server】NOT IN 语句效率低,用NOT Exisits 或者连接替代
    https://it.cha138.com/javascript/show-6146927.html【SQL】语句中,IN效率低下,最好使用【Exitis】或内循环替代。 ......
  • PDManger c# sqlserver数据库代码
    usingSystem;usingSystem.Collections.Generic;usingSqlSugar;$blankline{{vartoday=newDate();varfullYear=today.getFullYear();varmonth=today.getMonth()+1;vardays=today.getDate();varsqlSugartable='[SugarTable("......
  • nacos适配SqlServer、Oracle
    继上文《nacos适配达梦、瀚高、人大金仓数据库及部分源码探究 》后补充nacos适配SqlServer、Oracle的贴码,主要区别是SqlServer、Oracle的分页SQL有点不一样,做个记录;SqlServer的分页有三种实现方式:offset/fetchnext、利用max(主键)、利用row_number关键字;ps:具体可参......
  • 如何在WindowsServer服务器上配置SQL Server数据库?
    作者:西瓜程序猿主页传送门:https://www.cnblogs.com/kimiliucn服务器版本:WindowsServer2016数据库版本:SQLServer2016当时买了一台WindowsServer服务器,然后安装上SQLServer后,想通过外网访问到数据库,遇到了一些问题,查了很多资料也踩了很多坑。本文主要介绍如何配置SQL......
  • sql server创建视图操作
    1、什么是视图视图就是一个虚拟的数据表,该数据表中的数据记录是有一条查询语句的查询结果得到的。2、创建视图准则创建视图需要考虑一下准则:  #视图名称必须遵循标识符的规则,该名称不得与该架构的如何表的名称相同  #你可以对其他......