我正在使用 Spring Boot 开发服务器。我想使用 java.util.UUID 在我的主类中拥有一个静态 UUID 字段。我希望所有 Controller (作为独立类实现)使用 main 中的静态字段获取新的 uuid。但是如何在 Spring Boot 中将字段从 main 传递到 Controller 呢?有某种注释可以做到这一点吗?
这是我的主课:
package com.vastserver;
import java.util.UUID;
import com.vastserver.db.DBHandler;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ServerMain implements CommandLineRunner {
private static final UUID uuids = new UUID(1233, 45454);
private static final Logger log = LogManager.getLogger(ServerMain.class);
@Autowired
private DBHandler db;
public static void main(String[] args) {
log.warn("from main");
SpringApplication.run(ServerMain.class, args);
}
@Override
public void run(String... strings) throws Exception {
log.info("starting run");
db.initDBTables();
}
}
最佳答案
根据 @Michael 的评论,我创建了一个 Spring bean:
package com.vastserver;
import org.springframework.stereotype.Service;
import java.util.UUID;
@Service
public class RandomUUID {
private String uuid;
public String getUuid() {
return UUID.randomUUID().toString();
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
}
我在我的主类中添加了@Autowired
字段:
@Autowired
private RandomUUID uuid;
此外,我了解到,本身并不需要在特殊类中生成 UUID,以保证其唯一性。这是因为根据 UUID 标准,它源自 time因此,如果从多个类调用,它将是唯一的。
关于java - 如何在单独的类中将类字段从主类传递到 Spring Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111147/