我现在扭头了一段时间,没有找到最终解决方案。因此,我希望我可以在架构层次上找到一些交流或帮助解决此问题。
我目前面临以下情况:我想编写一个Web应用程序(我使用Java编写,但是这与解决方案并没有真正的关系,因为目前这是一个更高层次的问题),在哪里关系类型:
Event --1:n--> Team --1:n--> Participant
Run Code Online (Sandbox Code Playgroud)
含义:我有一个活动,其中有许多团队,有很多参与者。到目前为止非常好-在SQL数据库中这将是一个简单的关系。
但是,还有一个目录树,在文件结构中表示相同的关系:
+--event1
| +--team1
| | +--participant1
| | +--participant2
| | +--participant3
| +--team2
| | +--participant4
| +--team3
+--event2
| +--team4
...
Run Code Online (Sandbox Code Playgroud)
(我想,您有主意)因此,每个参与者的目录中都有许多文件,这些文件通过文件系统复制到此目录中。只要文件系统上有目录,就应将其连接到数据库中的相应条目,该目录中有一些其他数据,应与Web GUI中的文件一起显示。它没有定义,首先是什么(数据库条目或目录),因为它是由不同的用户操作的。
现在有几件事要牢记,这对我来说很有意义:
我希望我的描述足以理解情况。我已经有了一些想法,但是所有这些并没有真正说服自己成为一个可靠的解决方案。因此,希望你们中的一个已经对此有所了解。我对任何技术或框架都很开放,这可能有助于解决此问题。
我期待您的想法和愉快的讨论!
谢谢你的帮助!
我想知道 spring-boot 和已经提供的ThreadLocal用于保存诸如LocaleContextHolderor 之类的值的帮助程序类的最佳实践是什么RequestContextHolder。
实际上,我真的不喜欢传递参数,例如Request或Locale通过每个方法调用并在最终使用之前炸毁签名。我宁愿隐藏此信息详细信息,并在服务中必要时获取所需信息。但是,当时使用的东西是正确的RequestContextHolder还是LocaleContextHolder正确的,还是依赖于ThreadLocal操作的坏习惯?什么是推荐方法?
依赖时可能会出现什么问题ThreadLocal?我读到清理是一件重要的事情,但由于这已经由 spring-boot 完成,我认为这些是安全的操作。
感谢您的输入
WebMvcTest在Spring-Boot 2.1.1中与MockMvcSpring-Security 5.1.2 一起运行时是否存在任何已知问题?因为我无法正常工作-但是也许您看到我错过了什么。
这是我使用Junit5进行的设置:
RestController:
@RestController
@RequestMapping("/api/foo")
public class FooRestController {
...
@GetMapping("/{id}")
@PreAuthorize("hasRole('ADMIN')")
public String getFoo(@PathVariable("id") long id) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
测试
@ExtendWith(SpringExtension.class)
@AutoConfigureMockMvc
@WebMvcTest(value = FooRestController.class)
public class FooRestControllerTest {
@Autowired
private WebApplicationContext context;
protected MockMvc mockMvc;
@BeforeEach
public void setup() {
this.mockMvc = MockMvcBuilders
.webAppContextSetup(this.context)
.apply(springSecurity())
.build();
}
@Test
@WithMockUser(roles = "ADMIN")
public void testFoo() throws Exception {
MockHttpServletResponse apiResponse = mockMvc.perform(get("/api/foo/42")
.contentType(MediaType.APPLICATION_JSON)
)
.andDo(print())
.andReturn()
.getResponse();
assertThat(apiResponse.getStatus())
.isEqualTo(HttpStatus.OK.value());
}
} …Run Code Online (Sandbox Code Playgroud) 有没有办法在 spring-boot-application 中自动压缩/优化图像?在我的应用程序中,用户可以自己将任何图像放入文件夹中,我无法确定它们是否以最佳方式压缩。由于它们不是通过应用程序上传的,我也无法创建优化版本。
所以我想做的是在请求图像后压缩/优化图像,并可能将它们保存在一种“图像缓存”中一段时间。
或者是否有一个tomcat/apache-module,它已经可以开箱即用地做这种事情?
谢谢你的帮助