/ / Propósitos de usar o Bean em vez do modelo no Spring MVC e Hibernate - java, spring, hibernate, spring-mvc

Propósitos de usar o Bean em vez do modelo no Spring MVC e Hibernate - java, spring, hibernate, spring-mvc

Eu vi um tutorial de codificação usando o bean em vez de modelo, mas não expliquei por que preciso fazê-lo.

http://www.dineshonjava.com/2012/12/spring-mvc-with-hibernate-crud-example.html#.V4R1_vl96Un

Alguém sabe por que isso? Qualquer caso de uso para usar classes de bean?

Algum código no controlador:

@RequestMapping(value = "/edit", method = RequestMethod.GET)
public ModelAndView deleteEmployee(@ModelAttribute("command")EmployeeBean employeeBean,
BindingResult result) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("employee", prepareEmployeeBean(employeeService.getEmployee(employeeBean.getId())));
model.put("employees",  prepareListofBean(employeeService.listEmployeess()));
return new ModelAndView("addEmployee", model);
}

private EmployeeBean prepareEmployeeBean(Employee employee){
EmployeeBean bean = new EmployeeBean();
bean.setAddress(employee.getEmpAddress());
bean.setAge(employee.getEmpAge());
bean.setName(employee.getEmpName());
bean.setSalary(employee.getSalary());
bean.setId(employee.getEmpId());
return bean;
}

Eu sou novo para sping mvc, aprecio alguém pode explicar por que fazê-lo ... Obrigado.

Respostas:

1 para resposta № 1

Lendo através do exemplo, parece que ele é apenascriou a classe "EmployeeBean" para retornar ao front end JSP (camada de apresentação). Isso seria dissociar o POJO da classe hibernate "Employee", que ele criou especificamente para mapear o objeto em hibernate.

Mais sobre as convenções do JavaBeans: https://en.wikipedia.org/wiki/JavaBeans


-1 para resposta № 2

Autor escreveu o código de forma que, ao renderizar dados para o JSP, ele converte a classe de modelo em seu bean customizado e, ao inserir dados, ele converte o bean customizado em classe de modelo.

Esta poderia ser a sua ideia de apresentar o seu camada de controle personalizado Entre o camada persistente e camada de representação. O motivo pode ser controlar o fluxo adicionando seus valores padrão personalizados ou pode ser uma validação personalizada, embora isso possa ser possível com o Spring usando o @InitBinder e muitas outras técnicas.