我有一个使用Maven-Jersey编写的简单Java Web服务。它有两个函数 - getallusers和getuser
@Path("/UserService")
public class UserService
{
UserDao userDao = new UserDao(DevMode.DEV_MODE);
private static final String SUCCESS_RESULT = "{\"result\":\"success\"}";
private static final String FAILURE_RESULT = "{\"result\":\"failure\"}";
@GET
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public List<User2> getUsers()
{
return userDao.getAllUsers();
}
@GET
@Path("/users/{userid}")
@Produces(MediaType.APPLICATION_JSON)
public User2 getUser(@PathParam("userid") int userid)
{
return userDao.getUser(userid);
}
}
UserDao正在从user.json文件中读取。现在我想在配置文件中设置DevMode.DEV_MODE。像deployment_mode="Dev"
这样的东西我可以在部署期间或运行单元测试时更改它。我使用DevMode读取userdev.json或usertest.json等不同文件。
UserService入门时有没有办法读取此配置文件?或者,有一种方法可以在UserService启动后修改这些配置参数吗?
更新:我仍然不知道如何阅读或修改Web服务的配置属性。作为一种解决方法,在单元测试中我添加了@Before和@After。在@Before函数中,我手动将实际db文件user.json移动到temp并创建测试user.json文件。在@After函数中,我将移回临时文件以替换测试user.json。这绝对是解决这个问题的一种肮脏方式。