大家好,我是IT修真院深圳分院第十三期学员,一枚正直纯洁善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务四里面的一个扩展:初识springboot和freemarker。
1 背景介绍
1.1 springboot是什么?
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。进而言之,就是springboot是为了解决springmvc和spring配置繁琐问题出的框架,使得开发人员更容易专注开发。
1.2 FREEMARKER是什么?
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
2 知识剖析
2.1 springboot的特点
1、能够快速创建基于Spring的应用程序。
2、内嵌tomcat、jetty等容器,可以直接打成jar,不用war包部署,部署简单
3、提供生产就绪型功能,如指标,健康检查和外部配置
4、开箱即用,无需xml配置
2.2 FREEMAKER的优点
1、不能编写java代码,可以实现严格的mvc分离
2、性能不错
3、对jsp标签支持良好
4、宏定义(类似jsp标签)非常方便
5、内置大量常用功能,使用非常方便
3.常见问题
springboot打包的时候出现找不到主类
4 解决方案
在maven的pom.xml文件中添加:
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
5.编码实战
6.扩展思考
1、springboot如何打成jar包和war包
这是由于springboot内置了tomcat和jetty容器,所以在打包的时候直接打成jar包,并且使用java -jar xxx.jar的命令运行就行可以。打包的话在pom文件添加springboot打包工具就行了。
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
打成war包的话,springboot首先要移除内置的tomcat容器,
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
exclusion>
exclusions>
dependency>
接着添加依赖:
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>3.1.0version>
<scope>providedscope>
dependency>
修改启动类:
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(Application.class);
}
}
接着使用maven打包命令:
mvn package完成打包,打成war包之后就可以部署到相应的容器了。
2、除了freemarker还有什么模板引擎比较流行
除了freemaker还有theamleaf模板引擎,目前springboot官方的模板引擎就是theamleaf,使用theamleaf的好处是theamleaf使用过的就是html文件,不需要想freemarker一样去修改文件后缀为ftl。
7.参考文献
CSDN、百度百科
8 更多讨论
1、springboot如何和mybatis整合
springboot和mybatis整合只需要加入:
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.3.1version>
dependency>
在application.yml配置mybatis就行了。
2、jsp和模板语言有什么区别
jsp是编译成继承自servlet的class文件,运行jsp就是运行一个servlet。
模板语言是通过模板+内容直接生成HTML然后输出。
3、为什么springboot官方不推荐jsp
因为jsp已经相应被模板语言淘汰,由于在jsp中直接调用java方法这种行为并不是标准的mvc及结构,而且在springboot的默认目录下并没有提供WEBAPP的目录,springboot不推荐。
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。
快来与我一起学习吧~ http://www.jnshu.com/login/1/45664133
腾讯视频:https://v.qq.com/x/page/f0766dfzi1x.html