我有一个非常简单的Spring 4.0 Boot项目。我想启动应用程序,并能够动态更改/templates/
中的html文件,而无需停止并重新启动应用程序。对静态资产(如java脚本或css文件)的更改没有问题。
以下是我的计划的详细信息:
没有XML配置文件。该类用于配置。
@Configuration
public class MVCConfiguration extends WebMvcConfigurerAdapter{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("assets/**")
.addResourceLocations("classpath:/templates/assets/");
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/");
registry.addResourceHandler("/img/**")
.addResourceLocations("/img/");
registry.addResourceHandler("/js/**")
.addResourceLocations("/js/");
}
}
这是我的控制器。
@Controller
public class ControlFreak {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(){
return "index";
}
}
我index.html
位于templates/
我使用这个类运行应用程序。
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
答案 0 :(得分:0)
您尝试使用IDE轻松完成的工作将在开发过程中节省大量时间。
首先,您需要通过设置:
将Spring Boot配置为不缓存Thymeleaf模板 spring.thymeleaf.cache=false
然后你只需要在调试模式下使用IDE启动应用程序(只需使用main
方法调试类),每当你更改Thymeleaf模板时,你只需要指示IDE重新加载项目
在IntelliJ IDEA中,这是通过Reload Changed Classes
菜单中的Run
选项完成的。
我认为您可以将Eclipse配置为在每次更改时自动更新项目,但自从我使用它以来已经有一段时间了。
答案 1 :(得分:0)
project.base-dir=file:///C:/temp/auth/
spring.thymeleaf.prefix=${project.base-dir}/src/main/resources/templates/
spring.thymeleaf.cache=false
spring.resources.static-locations=${project.base-dir}/src/main/resources/static/
spring.resources.cache-period=0