具有身份validation的Spring Boot项目结构
我正在学习Spring启动及其模块,但我希望避免学习不良实践。 那么你能告诉我通常使用什么项目结构吗?
我正在使用这个结构:
com +- example +- myproject +- Application.java | +- config | +- CustomSecurityConfig.java (extends WebSecurityConfigurerAdapter) | +- domain | +- Customer.java | +- repository | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
现在我需要实现JWT身份validation,所以我有了新的类:
- 用于安全filter链的CustomAuthFilter.java
- AuthenticationManager的CustomUserDetailsService.java
- CustomEntryPoint.java用于处理exception
- 用于管理jwt令牌的CustomJwtService.java
- 用于其他端点的CustomAuthController.java,如/ login,/ logout,/ create-user,/ reset-password
你能告诉我这个class的哪个店吗? 我有两个想法:
- 创建安全文件夹并将其放在一起
- 将文件拆分为现有文件夹,如:CustomAuthFilter.java – > config,CustomUserDetailsService.java – > service,CustomEntryPoint.java – > config,CustomJwtService.java – > service,CustomAuthController.java – > web
你能给我一些建议吗? 谢谢。
这是代码组织问题,与spring boot无关。
通过模块的商业意识/function,而不是模块的技术意义。 如果您需要一段时间,那么function感将有助于您轻松理解代码。
+Application.java +security/ +-CustomAuth +-CustomJwtSevice
如果function分散在多个文件中,则将它们保存在子文件夹中,如上面的“ 安全性 ”。
+Application.java +security/ +-auth/ +--token/ +---JWTtokenGenerator.java +---JWTutil.java +--configuration/ +---SecurityConfig +---... +--customer/ +---customerservice.java +---customerrepo.java
上述模式通过将模块,子模块和子模块划分为其子模块来实现