自定义工具类Static方法调用业务中Service层方法


前言

今天需要验证OpenId,来看是否为系统用户,直接封装一个工具类,遇到了调用业务层service的方法。记一次学习笔记

一、如何实现?

  1. 直接实现一个static的方法,如果openid在数据库中有数据就返回微信对象,如果没有就直接抛异常给前端。
  2. 在代码中需要验证openid的地方直接调用static方法。

二、Util工具类实现

要求:Util类中的静态方法需要调用wxUserService中的方法以获取用户角色

代码如下(示例):



@Component  // 交由spring管理
public class Util{
 
    @Autowired  // 注入
    private WxUserService wxUserService;
 
    // 声明对象
    public static Util util;
 
    @PostConstruct // 初始化
    public void init(){
        util= this;
        util.wxUserService = this.wxUserService;
    }
 
 public static WxUser OpenId(String openid) {
 		// 调用
        WxUser wxUser = util.wxUserService.selectByOpenId(openid);
        //异常抛出
        BusinessCheck.checkNull(wxUser, BusinessErrorCodeEnum.NOT_NULL);
         // 逻辑处理
        return wxUser;
    }
    

就是这样实现调用就是Util.OpenId(openid);下面就是自己学习的部分,大家可以不用看哦!

代码相关注解

1.@Component是spring中的一个注解,它的作用就是实现bean的注入,注解本质上就是一个类,开发中我们可以使用注解 取代 xml配置文件。
web开发,提供3类@Component注解衍生注解(功能一样)取代
@Repository(“名称”):dao层
@Service(“名称”):service层
@Controller(“名称”):web层

@Autowired:自动根据类型注入
@Qualifier(“名称”):指定自动注入的id名称

@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁
下面直接看具体例子:

第一种方法
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第二种方法:
在这里插入图片描述
一、阐述一下关于ApplicationContext类的作用做测试的话,获得Spring中定义的Bean实例(对象).可以用:

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
RegisterDAO registerDAO = (RegisterDAO)ac.getBean("RegisterDAO");

如果是两个以上:
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","dao.xml"});

或者用通配符:
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/*.xml");

二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别

classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,需要加上file:前缀表示这是绝对路径;

FileSystemXmlApplicationContext:
默认表示的是两种:

1.没有盘符的是项目工作路径,即项目的根目录;
2.有盘符表示的是文件绝对路径.

如果要使用classpath路径,需要前缀classpath:
2.@PostConstruct(是一个java注解)
@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

通常我们会是在spring框架中使用到@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序:

Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)


总结

今天博客就是这样子,主要介绍了工具类的编写,解决一些重复代码的使用,还学习了两个注解以及以前面试中遇到的一些问题;
好啦,今天就写这一篇吧,祝愿每个人每天都在进步!加油!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

望舒@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值