执行main方法时调用server层或dao层方法
因业务需要临时同步一个数据,一开始想着直接写个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选项关掉才行
不关会一直报错,没细追原因
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!