Как называется данный шаблон проектирования в Spring
Я начал разрабатывать вебсайт с использованием Spring Boot (2.2.6.RELEASE) + Hibernate и столкнулся с тем, что мне надо выбрать паттерн для разработки вебсайта.
Я выбрал следующий вариант для разработки, но не могу понять как называется такой паттерн (предполагаю, что MVC):
@Entity -> @Repository -> @Service -> @Controller <- HTML(Thymeleaf/Template Engine)
То есть я создаю сущности/модели (@Entity)
Для работы с таблицами я использую extend CrudRepository<..., ...> (@Repository)
Бизнес-логику записываю в сервис-класс, где я с помощью @Autowired имею доступ к Repository (@Service)
В контроллере я с помощью @Autowired получаю доступ к @Service и в контроллере я указываю какой template мне надо использовать для той или иной страницы(@Controller).
Пример:
@Entity
@Entity
@Data
@Table
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "role_generator")
@SequenceGenerator(name="role_generator", sequenceName = "seq_role", allocationSize = 1)
private Long id;
@Column
private String roleName;
//Еще какой-то код
}
@Repository
@Repository
public interface RoleRepository extends CrudRepository<Role, Long> {
List<Role> findAll();
Role findByRoleName(String roleName);
}
@Service
@Service
public class RegistrationService {
@Autowired
private UserRepository userRepository;
@Autowired
private RoleRepository roleRepository;
@Autowired
BCryptPasswordEncoder bCryptPasswordEncoder;
public Viewer findByRoleName(String roleName) {
return roleRepository.findByRoleName(roleName);
}
}
@Controller
@Controller
@RequestMapping("/registration")
public class RegistrationController {
@Autowired
private RegistrationService registrationService;
@GetMapping
public ModelAndView getRegistration(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("public/registration");
modelAndView.addObject("users", registrationService.findByRoleName("TEST").getUsers());
return modelAndView;
}
Примеры лишь отображают идею, поэтому ошибок в коде не ищите