因业务需要临时同步一个数据,一开始想着直接写个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