8年的坚持
小郭一直在努力

Springboot入门1:第一个工程及打包发布

学习目标:

  • 使用Idea工具创建一个Springboot工程;
  • 编写一个简单的控制器;
  • 显示一个模板页面;
  • 打包项目并发布运行。

言归正传,下面是具体的构建步骤。

1.         创建Springboot工程

启动Idea,创建一个工程,选择Spring Initializr(需联网),JDK选1.8。点击Next:

下面设置项目名称, 包名称。点击Next:

这一步选择项目依赖包,我们选择:DevTools,Spring web starter,模板引擎Thymeleaf。

最后一步,选择工程名称和保存目录:

点击Finish后,Idea为我们创建了Springboot工程。如果你是第一次创建,请耐心等待Maven下载依赖的包,时间根据网络情况几分钟到一小时不等。只能耐心等待!

所有依赖包下载完毕后,我们的工程也准备好了,看看目录结构:

2.         Hello SpringBoot!

工程已经创建好了,你是不是像我一样着急的想看到结果?

别急,我们先创建一个java类,就叫HelloController吧:

激动人心的时刻即将到来!点击右上角的运行按钮,在控制台中我们看到Tomcat在端口8080上启动了服务:

打开浏览器,输入:http://localhost:8080/demo/hello,不出意外的话,我们就见到了Hello SpringBoot的页面:

代码解释:

在类的前面我们增加了两行注解:

@Controller

@RequestMapping(“/demo”)

这是告诉SpringBoot此类是个控制器,映射到/demo路径。

hello函数前我们增加了:

@ResponseBody

@RequestMapping(“/hello”)

这是告诉SpringBoot此函数直接返回响应体,且映射到目录/demo/hello。(类/函数路径)

 

3.         准备静态资源

上面我们创建了一个简单的页面,但是实际的网站比这复杂多了。需要一些静态资源文件,比如Js脚本,Css样式表,png图片等。现在我们先准备好这些东东。

静态资源我们放在工程的src\main\resources\static\目录下,我准备了jquery.js、bootstrap和一个图片,如下图所示:

4.         编写模板页面

还记得我们创建工程的时候,选择了模板引擎Thymeleaf吗?Thymeleaf是Springboot官方推荐的模板引擎,现在我们创建一个html文件“hello.html”,并把它放在工程的templates目录下。如下图所示:

hello.html的内容如下:

<!DOCTYPE html>

<html lang=”zh-CN” xmlns:th=”http://www.thymeleaf.org“>

<head>

<meta charset=”utf-8″ />

<meta http-equiv=”X-UA-Compatible” content=”IE=edge” />

<meta name=”viewport” content=”width=device-width, initial-scale=1″ />

<!– 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! –>

<title th:text=”${title}”></title>

<!– Bootstrap –>

<link href=”/bootstrap/css/bootstrap.min.css” rel=”stylesheet” />

</head>

<body>

<div class=”container”>

<div class=”row”>

<div class=”text-center”><img src=”/logo.jpg”/></div>

<h1 class=”text-center” th:text=”${hello}”> Hello </h1>

</div>

<div class=”row”>

<div class=”col-md-3″></div>

<div class=”col-md-6″>

<table class=”table”>

<caption>中国互联网独角兽(2019)</caption>

<thead>

<tr>

<th>#</th>

<th>公司</th>

<th>老板</th>

<th>市值(亿美元)</th>

</tr>

</thead>

<tbody>

<tr th:each=”com : ${comps}”>

<th scope=”row” th:text=”${com.order}”></th>

<td th:text=”${com.name}”></td>

<td th:text=”${com.boss}”></td>

<td th:text=”${com.money}”></td>

</tr>

</tbody>

</table>

</div>

<div class=”col-md-3″></div>

</div>

<!– jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) –>

<script src=”/jquery.min.js”></script>

<!– 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 –>

<script src=”/bootstrap/js/bootstrap.min.js”></script>

</div>

</body>

</html>

 

代码解释:

th:text=”${hello}”

表示对于一个变量hello,请看下文。

5.         编写控制器

继续修改HelloController类,我们增加一个函数templatePage。

其中Company类如下:

现在运行此工程,在浏览器输入地址:http://localhost:8080/demo/hello/template

显示如下页面:

6.         配置打包

我们一直是在Idea中运行调试,实际部署时一般打包成jar包,这样就可以单独运行。如要改变Tomcat的端口号,需修改application.properties文件,增加一行配置:

server.port = 8080

打包前修改pom.xml文件:

  • 增加 <packaging>jar</packaging>
  • 增加主类

  • 在Idea右侧,我们点击Maven按钮,再依次双击clean,package。

  • 生成的包在target目录下:

7.         运行jar包

在target目录下,我们运行:java -jar demo-0.0.1-SNAPSHOT.jar

启动后就可以在浏览器输入地址:http://localhost:8080/demo/hello/template访问。

8.        问题

最后打包时Maven会把所有静态资源和模板一块打包到jar中,这是一个fat jar。如果我们要修改某个模板或静态资源,都需要重新打包,费时费力。有没有方法不重新打包,就可以修改我们的静态资源呢?那就要用到动静分离的配置啦,请看下一篇文章。

 

 

未经允许不得转载:小郭软件 » Springboot入门1:第一个工程及打包发布
分享到: 更多 (0)

小郭软件在线打字,快速提高打字水平!

去在线打字排行榜