大海话语 2021-12-14 22:03 采纳率: 87.6%
浏览 123
已结题

为什么在java中使用 @Value("${alipay.publicKey}") 就会报错呢?

我在配置xml文件中写了一些资源,但是在控制层直接调用时,就会启动报错。

在单独的一个类中调用它,然后,再用控制层调用这个类中的,配置文件就可以。 这个类中的写法和控制层基本上是一样的。

控制层的

 //公钥
    @Value("${alipay.publicKey}")
    public String publicKey;

会报错

下面是常量类的写法

package com.hnsaturn.saturn005.constant;

import com.alipay.easysdk.factory.Factory;
import com.alipay.easysdk.kernel.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

/**
 * 项目初始化 常量类
 * */
@Component
public class ProjectInit implements ApplicationRunner {

    //应用id
    @Value("${alipay.appId}")
    public String appId;

    //私钥
    @Value("${alipay.privateKey}")
    public String privateKey;

    //公钥
    @Value("${alipay.publicKey}")
    public String publicKey;

    //支付宝网关
    @Value("${alipay.gateway}")
    public String gateway;

    //支付成功后的接口回调地址,不是回调的友好页面,不要弄混了
    @Value("${alipay.notifyUrl}")
    public String notifyUrl;

    /**
     *  项目初始化事件
     * */
    @Override
    public void run(ApplicationArguments args) throws Exception {
        //初始化支付宝SDK
        Factory.setOptions(getOptions());
        System.out.println("**********支付宝SDK初始化完成**********");
    }

    private Config getOptions() {
        //这里省略了一些不必要的配置,可参考文档的说明

        Config config = new Config();
        config.protocol = "https";
        config.gatewayHost = this.gateway;
        config.signType = "RSA2";
        config.appId = this.appId;

        // 为避免私钥随源码泄露,推荐从文件中读取私钥字符串而不是写入源码中
        config.merchantPrivateKey = this.privateKey;

        //注:如果采用非证书模式,则无需赋值上面的三个证书路径,改为赋值如下的支付宝公钥字符串即可
        config.alipayPublicKey = this.publicKey;

        //可设置异步通知接收服务地址(可选)
        config.notifyUrl = notifyUrl;

        return config;
    }
}


下面是报错信息


Parameter 2 of constructor in com.hnsaturn.saturn005.controller.PayController required a bean of type 'java.lang.String' that could not be found.


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.
  • 写回答

4条回答 默认 最新

查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog