我正在完成一项家庭任务,但无法理解此要求。它基本上希望我这样做:
在启动时允许提供被阻止用户的列表。如果用户 被阻止,注册应该失败,并带有正确的http状态代码。
这是否意味着我需要实现一个新的终结点(因为未提及)。提到的唯一一件事是我需要一个端点/create
来创建用户,或者我必须在静态块中维护一个用户名列表,然后将传入名称与该列表匹配,如果包含,则对该请求的请求失败?
我想知道我是否正确理解了这个问题,如果不是,那么有经验的人将如何提出这一要求。
PS。
我不能要求问题提供者澄清!
答案 0 :(得分:1)
说明说:“在启动时,可以提供被阻止用户的列表。”这表明应该将列表传递进来。
您可以像这样传递系统属性:
java -Dmyproject.blocked=user1,user2,user3 my project.Startup
使用System.getProperty
进行检索,使用逗号作为定界符对其进行拆分,并建立Set
阻止用户,您可以在处理请求时查询这些用户。
如果您使用的是Tomcat,那么我认为您可以使用环境变量JAVA_OPTS
传递设置。 Bash允许您一次设置环境变量并运行命令:
$ JAVA_OPTS=-Dmyproject.blocked=user1,user2 /path/to/tomcat/bin/catalina.sh start
导师也有可能意味着您应该将被阻止的用户存储在数据库表中(假设您有数据库),并在启动时仅 read 列表。在这种情况下,您应该将数据库表的读取与应用程序的初始化挂钩。您如何执行此操作取决于技术。如果使用的是Servlet,则可以使用init
方法。 Spring Boot可能有自己的方式来标识要在启动时运行的类。