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));
}
}
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
一篇文章彻底弄懂SpringBoot项目jdk版本及依赖不兼容问题
这篇文章主要给大家介绍了关于彻底弄懂SpringBoot项目jdk版本及依赖不兼容问题的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2023-01-01
用html css javascript打造自己的RIA图文教程
用html&css&javascript打造自己的RIA之一,包括了配置等2009-07-07
Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析
这篇文章主要介绍了Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析,需要的朋友可以参考下。2017-09-09
Java:com.netflix.client.ClientException错误解决
本文主要介绍了Java:com.netflix.client.ClientException错误解决,主要是指出客户端 module-sso 试图通过负载均衡器访问服务时,负载均衡器没有找到可用的服务器来处理请求,下面就来介绍一下解决方法2024-08-08
SpringBoot中@ConditionalOnProperty注解的使用方法详解
这篇文章主要介绍了SpringBoot中@ConditionalOnProperty注解的使用方法详解,在开发基于SpringBoot框架的项目时,会用到下面的条件注解,有时会有需要控制配置类是否生效或注入到Spring上下文中的场景,可以使用@ConditionalOnProperty注解来控制,需要的朋友可以参考下2024-01-01


最新评论