最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
springboot中通过main方法调用service或dao代码示例
时间:2022-06-29 01:54:12 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下springboot中通过main方法调用service或dao代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
大多数情况下,我们使用springboot是创建一个web项目,然后通过接口访问,但是也有特殊情况,比如线上跑着的web项目,有一些特殊的数据,需要经过计算导入到数据库,这个时候,我们可能需要原来的web项目中的一些service,dao才辅助操作,但是又不能在服务端新开接口。我们通过springboot的main方法执行这些操作。
此时,service和到需要通过上下文获得。
创建类,并复制下面代码
import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * 普通类调用Spring bean对象: * 注意:此类需要放到App.java同包或者子包下才能被扫描,否则失效。 */ @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; } //通过name获取 Bean. public static Object getBean(String name){ return getApplicationContext().getBean(name); } //通过class获取Bean. public staticT getBean(Class clazz){ return getApplicationContext().getBean(clazz); } //通过name,以及Clazz返回指定的Bean public static T getBean(String name,Class clazz){ return getApplicationContext().getBean(name, clazz); } }
再创建TestApp方法
必须跟SpringUtilfa放到同一目录下
package com.example.demo.test2; import com.example.demo.controller.Aqjg_thePeriodController; import com.example.demo.mapper.AppAqjgTaskMapper; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ApplicationContext; import java.util.List; import java.util.Map; @SpringBootApplication @MapperScan(basePackages = {"com.example.demo.mapper"}) public class TestApp { public static void main(String[] args) { SpringApplication.run(TestApp.class, args); ApplicationContext context = SpringUtil.getApplicationContext(); Aqjg_thePeriodController aqjg_thePeriodController = new Aqjg_thePeriodController(); AppAqjgTaskMapper appAqjgTaskMapper = context.getBean(AppAqjgTaskMapper.class); //你的dao或service List
在普通类中获取service或者dao
手动创建工具类
package com.lhw.locktest.util; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; @Component public class TherdUtil implements ApplicationContextAware { private static ApplicationContext applicationContext = null; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (TherdUtil.applicationContext == null) { TherdUtil.applicationContext = applicationContext; } } //获取applicationContext public static ApplicationContext getApplicationContext() { return applicationContext; } //通过name获取 Bean. public static Object getBean(String name) { return getApplicationContext().getBean(name); } //通过class获取Bean. public staticT getBean(Class clazz) { return getApplicationContext().getBean(clazz); } //通过name,以及Clazz返回指定的Bean public static T getBean(String name, Class clazz) { return getApplicationContext().getBean(name, clazz); } }
调用配置类
UserService userService = TherdUtil.getBean(UserService.class); userService.decStockNoLock();
相关文章
- 《1号会员店》关闭自动续费方法 01-29
- 《排球少年:新的征程》社团每日福利领取方法 01-29
- 《椿之歌》新手风属性队伍推荐 01-29
- 《最终幻想14:水晶世界》小小阿托莫斯宠物获得方法 01-29
- 《燕云十六声》醉拳客打法攻略 01-29
- 《异人之下》全货币获取方法汇总 01-29