如何在Spring Boot中创建外部jar上存在的类的对象?

时间:2017-11-18 19:27:16

标签: java spring maven spring-boot annotations

我目前正在学习Spring Boot并遇到了这个问题。我有一个处理身份验证的简单类,它存在于外部jar(Aunthenticaion.class)上。这个外部类的字段只是用户名,密码和URL,它为我提供了基于这些凭据的身份验证。我想要做的就是在编译时创建这个类的实例(通过传递这些凭据),因为我的应用程序在没有设置此用户名,密码和URL时抛出构建错误。

package org.Authentication;

公共类认证{

String username;
String password;
String url;


public String getUserName() {
    return username;
}
public void setUserName(String username) {
    this.username = username;
}

public void setPassword(String password) {
    this.password = password;
}
public String getUrl() {
    return url;
}
public void setUrl(String url) {
    this.url = url;
}

public String GetToken(String username,String password,String url) {
    return TokenService.getToken(username,password,url);
}
}

上面是外部Jar上的Authentication类。我知道必须有类似的问题已经存在,但我提前道歉,你的回复将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

您可以通过静态或动态

两种方式创建对象

<强>静态

Class<?> clazz = Authentication.class;
// static call
Method getUserName = clazz.getMethod("getUserName"); 
String uname = (Stirng) getUserName.invoke(null /* static */);

<强>动态

Constructor<?> ctor = clazz.getConstructor();
Object instance = ctor.newInstance();
Method print = clazz.getMethod("GetToken", String.class, String.class, 
String.class);
print.invoke(instance, uname,passwd,url);