spring boot使用freemarker生成静态html—基于springmvc+tomcat切到springboot实战三

2019-03-01 00:14|来源: 网路

以运行jar的方式启动spring boot,如果要使用freemarker生成静态html(例如书生的首页),怎么访问呢?

首先,生成静态页面的路径获取方式:

@Override
public String getContextPath() {
    String contextPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
    return contextPath;
}
 
@Override
public String getPageBasePath() {
    return getContextPath() + File.separator + "templates";
}


其次,application.yml配置template-loader-path

template-loader-path:

 - file:./templates/

 - classpath:/templates/


最后,打包的时候把application.yml打包到启动jar所在目录

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.1</version>
    <executions>
        <execution>
            <id>copy-cms-config</id>
            <phase>process-resources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}</outputDirectory>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <includes>
                            <include>application.yml</include>
                        </includes>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>


相关问答

更多
  • 建议你这样试试看: 1. 在 Eclipse 中新一个 maven 工程。 2. 修改 pom.xml 文件添加如下内容: 3. org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.bo ...
  • 区别如下: Spring 是一个“引擎” Spring MVC 是基于 Spring 的一个 MVC 框架 Spring Boot 是基于 Spring4 的条件注册的一套快速开发整合包 Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC 框架(一些用 Spring 解耦的组件),用开发 web 应用( SpringMVC )。然后有发现每次开发都要搞很多依赖,写很多样板代码很麻烦,于是搞了一些懒人整合包( starter ...
  • 先学spring framework吧,把spring 的原理,配置那些东西学会了,理解了再去用spring boot 很容易上手,其实spring boot 就是把很多spring 的配置都简化了,很多东西在properties配置文件里写了之后,spring boot 就会自动帮你把相关的bean配置上,例如你在配置文件里把数据库连接的相关地址,用户,密码配好后,spring boot就会自动帮你把数据库连接池配置好,当然你也可以不用他提供的自动配置功能,完全可以按照你的需求去集成其他的例如dbcp,c ...
  • spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来spring mvc类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来。
  • spring
  • 我从另外一个问题中看到,你真正想要的是能够从默认值改变应用程序中静态资源的路径。 撇开你为什么要这么做的问题,有几个可能的答案。 一个是你可以提供一个普通的Spring MVC @Bean类型的WebMvcConfigurerAdapter并使用addResourceHandlers()方法向静态资源添加额外的路径(默认情况下请参阅WebMvcAutoConfiguration )。 另一种方法是使用ConfigurableEmbeddedServletContainerFactory功能来设置servle ...
  • 我个人的建议是肯定使用Spring Boot的原因很多。 首先是Boot是“Spring的未来”。 有了这个话,我想说的是,通过Boot,您可以受益于Spring社区的许多承诺,今天的大多数Spring项目都与Boot完全集成,即使是社区也开始开发基于Boot的许多应用程序。 例如对于管理和监视我可以建议看到Spring Boot Admin 使用弹簧启动,您可以受益于非常好的和有用的功能,如执行器和远程管理和监控,可以改善您的应用程序与生产就绪功能非常有用。 非常好的和强大的属性和配置控件,您可以使用ap ...
  • 我遇到了同样的问题,因此我必须查看此页面上的所有解决方案以及相关的解决方案。 没有人对我有好处。 这就是我进行小规模研究的原因,看起来捕获的TCP端口出现问题只是因为Gradle和mvn都不了解TCP端口的子操作。 所以不要杀死进程只需使用命令: $ gradlew –stop (我希望mvn同样存在) 此命令正常关闭由Gradle启动的守护程序并释放由Tomcat端口捕获的守护程序。 I have met the same issue and as result I had to review all ...