gpt4 book ai didi

java - jax-rs Rest服务调用属性文件

转载 作者:行者123 更新时间:2023-12-01 09:13:52 27 4
gpt4 key购买 nike

上下文

我关注了这个SO answer创建并加载属性文件。

我的后端代码分为 4 个项目(服务、业务、DAO、模型)

服务

@Path("/users")
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<User> getUsers() {
return UserBusiness.getUsers();
}

业务

public List<User> getUsers(){
return _userDao.findAll();
}

DAO

public List<User> getUsers(){
try{
String query = "";
PreparedStatement ps = null;
//Query to DB here
}catch(SQLException e){
}
}

模型

public class User{
private int id;
private String username;
private String password;
private String fullName;
}

我的属性文件存储在com.resources包下的Services项目中,以及该项目内包ApplicationConfigcom.service包含这个

public static final String PROPERTIES_FILE = "config.properties";
public static Properties properties = new Properties();

private Properties readProperties() {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(PROPERTIES_FILE);
if (inputStream != null) {
try {
properties.load(inputStream);
} catch (IOException e) {
logger.severe(e.getMessage());
}
}
return properties;
}
<小时/>

问题

我的 Services 项目包含项目 Models 作为依赖项。

我需要在我的 DAO 项目中检索属性值(也许稍后也会在其他项目中)。我无法将项目 Services 添加到我的 DAO 项目,因为它将添加循环依赖项。因此我无法访问 ApplicationConfig.properties.getProperty("myprop")

如何使用属性文件?我应该让 readProperties() 放在 ApplicationConfig 中吗?我应该将属性文件放在哪些项目中?

最佳答案

理想情况下,您的 DAO 项目不应依赖于与服务项目相同的文件上的配置。您有 2 个选择:

  • 将服务项目中的所有配置加载到一个类及其周围。在这种情况下,您最终将得到一个包含所有项目配置的大配置文件。

  • 在单独项目的 util 类内的静态方法中重用配置文件加载器代码。现在,每个项目都可以拥有自己的配置文件,并依赖于 util 项目来加载和读取配置文件。

关于java - jax-rs Rest服务调用属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723909/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com