java普通类调用mapper或者service方法详解
更新时间:2025年10月16日 08:34:55 作者:cxyhl
本文介绍了两种调用或获取Spring Bean的方法:一种是直接使用Test.select(1);另一种是通过自定义SpringUtil工具类实现对Spring Bean的获取和管理,从而简化在项目中的Bean调用流程
java普通类调用mapper或者service
第一种
@Component
public class Test {
@Resource
SecurityUserMapper securityUserMapper;
public static Test test;
@PostConstruct
public void init(){
test=this;
test.securityUserMapper=securityUserMapper;
}
public static SecurityUserEntity select(int id){
return test.securityUserMapper.selectById(id);
}
}
直接 Test.select(1);即可
第二种
创建一个srpingutil工具类
package com.helei.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
// TODO Auto-generated method stub
if (SpringUtil.applicationContext == null) {
SpringUtil.applicationContext = applicationContext;
System.out.println(
"========ApplicationContext配置成功,在普通类可以通过调用ToolSpring.getAppContext()获取applicationContext对象,applicationContext="
+ applicationContext + "========");
}
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//通过
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
//通过class获取Bean.
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
}
package com.helei.util;
import com.helei.mapper.SecurityUserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class JzShopApplicationTests {
@Test
public void contextLoads() {
//GoodsServiceImpl为我想要获取的service层中的类
SecurityUserMapper securityUserMapper = (SecurityUserMapper)SpringUtil.getBean(SecurityUserMapper.class);
System.out.println(securityUserMapper.selectById(1));
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中的InputStreamReader和OutputStreamWriter源码分析_动力节点Java学院整理
本文通过示例代码给大家解析了Java中的InputStreamReader和OutputStreamWriter知识,需要的的朋友参考下吧2017-05-05
使用feign传递参数类型为MultipartFile的问题
这篇文章主要介绍了使用feign传递参数类型为MultipartFile的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03
如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Sock
这篇文章主要介绍了解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-06-06


最新评论