2016-04-11 6 views
0

Wir haben SpringMVC-Anwendung mit Spring-Boot und Thymleaf erstellt. Jetzt muss ich sie gemäß neuer Anforderung in Spring-REST für den Verbrauch externer Anwendungen (AngularJS und Android App) umwandeln, ohne die Thymleaf-Seiten zu beeinflussen.Wie wird SpringMVC Application auf SpringREST portiert?

Bitte assistieren.

Unten ist der Beispielcode. So sind viele Controller dort

@Controller 
@RequestMapping(value = "/admin/register") 
@SessionAttributes("roles") 
public class AdminRegisterController { 
    @Autowired 
    private UserService userService; 

    @Autowired 
    private RoleRepository roleRepository; 

    @ModelAttribute("user") 
    public User constructUser() { 
     return new User(); 
    } 

    @ModelAttribute("roles") 
    public List<Role> InitializeRoles() { 
     return roleRepository.findAll(); 
    } 

    // Display Register Page 
    @RequestMapping 
    public String showRegister(Model model) { 
     model.addAttribute("current", "register"); 
     return "register"; 
    } 

    // Inserting new User 
    @RequestMapping(method = RequestMethod.POST) 
    public ModelAndView doRegister(@Valid @ModelAttribute("user") User user, BindingResult result) { 
     if (result.hasErrors()) { 
      return new ModelAndView("register"); 
     } 
     userService.save(user); 
     RedirectView redirectView = new RedirectView("/admin/register?success=true"); 
     redirectView.setExposeModelAttributes(false); 
     return new ModelAndView(redirectView); 
    } 


    @RequestMapping("/available") 
    @ResponseBody 
    public String available(@RequestParam String username) { 
     User user = userService.findOne(username); 
     Boolean available = userService.findOne(username) == null; 
     return available.toString(); 
    } 


} 
+0

Ich fürchte, Sie können nicht tun, was Sie wollen, können Sie nicht den gleichen Rückgabewert in einer Methode von thymeleful (HTML zurückgeben) und json, aber wenn Ihre Geschäftslogik ist in Ihren Diensten isoliert, was Sie können Erstellen Sie einige Ruhe-Controller und fügen Sie dort alle Methoden hinzu, die Sie benötigen. – cralfaro

Antwort

0

Sie können die javax.ws.rs API für das tun.

<dependency> 
    <groupId>javax.ws.rs</groupId> 
    <artifactId>javax.ws.rs-api</artifactId> 
    <version>2.0</version> 
</dependency> 

Und verwenden Sie @RestController anstelle von einfachen @ Controllers in Ihrem aktuellen Code.

+0

Ja..Ich möchte SpringREST verwenden ... Also ich denke, es ist ziemlich einfach. Aber nur Problem würde sein, wie man sie in verschiedenen apps konsumiert, da meine Methode ResponseEntity nicht zurückgibt, aber es gibt den String zurück -> Seitenname von thymleaf. Ich werde meine Frage mit Beispielcode bearbeiten. – user5572128