我想分开后端和前端(HTML页面)机器。后端将由Spring-Boot开发。如何将控制器中的视图返回到前端机器,而不是后端(Spring-Boot---〉Apache Tomacat)机器中的"资源/模板"?
例如:
@Controller
public class GreetingController {
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "greeting";
}
}
我想把"问候"视图在另一个服务器(前端)。
4条答案
按热度按时间i2byvkas1#
您没有透露您使用的是哪种模板技术(例如JSP、Thymeleaf ......),但无论哪种方式,Spring都需要将您的变量从模型注入HTML模板。
AFAIK,没有办法在一个JVM中托管视图,而控制器在另一个JVM中填充它。你可以将视图提取到单独的JAR中,但最终它需要托管在同一个Servlet容器中。
如果您希望真正分离客户机和服务器,请研究客户机上的模板(单页应用程序),并只使用 AJAX 从REST后端获取数据。
06odsfpq2#
你可以启动两个服务器,一个用于后端,另一个用于前端。这两个服务器将通过REST调用进行通信。后端服务器将数据提供给前端服务器,前端服务器将收集数据并将其发送到前端服务器中的html模板。模板引擎集成将保存你完成工作的时间。Springboot与Thymeleaf有很好的集成,所以我建议你使用相同的。
原型做好后其实很简单,我做了frontend和backend分离的springboot应用程序的原型,这里使用的模板引擎是thymeleaf,数据库是mysql,语言是java,你可以去掉不需要的部分,开始你的工作!
nnsrf1az3#
您可能需要实现/
WebMvcConfigurerAdapter
接口。这是一个代码示例:
下面的代码用于属性文件中的配置变量。
此示例具有Windows文件路径模式。您可能需要根据您的环境更改该模式。
我做了一个样例项目来分离前端和后端工作区,以免与它们的工作目录冲突。
请参考this link。您可以在该页面上找到GitHub链接。
4dc9hkyq4#
使用REST-Web-Service可以做到这一点,但Thymeleaf的目标不是作为前端应用程序单独工作。如果您绝对需要一个单独的前端应用程序,您应该使用任何现代的js框架,如Angular/React/Vue,并使用spring Boot for rest API。