1. 程式人生 > >springboot深入學習(二)-----profile配置、執行原理、web開發

springboot深入學習(二)-----profile配置、執行原理、web開發

一、profile配置

通常企業級應用都會區分開發環境、測試環境以及生產環境等等。spring提供了全域性profile配置的方式,使得在不同環境下使用不同的applicaiton.properties,走不同的配置。

模板:application-{profile}.properties

示例:

程式會根據application.properties檔案中配置的spring.profiles.active=xxx的值,找到對應的application-xxx.properties中具體的屬性值

 

二、springboot執行原理

springboot關於自動配置的原始碼在spring-boot-autoconfigure.jar中,檢視原始碼可以到此包。

@SpringBootApplication的核心功能其實是由@EnableAutoConfiguration註解提供,原始碼如下:

 

原理這塊這篇文章講的不錯:https://www.cnblogs.com/shamo89/p/8184960.html

 

 

三、spring boot的web開發

springboot提供了spring-boot-starter-web對web開發予以支援,主要嵌入了tomcat以及springmvc的相關依賴

1、thymeleaf模板引擎

在springboot中,jsp不推薦使用,因為jsp在內嵌的servlet的容器上執行有一些問題,內嵌的tomcat不支援以jar形式執行jsp。最為推薦的則是thymeleaf,提供了完美的springmvc的支援

A、引入thymeleaf

<html xmlns:th="http://www.thymeleaf.org">

 

B、訪問model中的資料

<span th:text="${singlePerson.name}"></span>

C、model資料迭代

<div class="panel-body">
    <ul class="list-group">
    <li class="list-group-item" th:each="person:${people}">
      <span th:text="${person.name}"></span>       <span th:text="${person.age}"></span>     </li> </ul> </div>

D、資料判斷

<div th:if="${not #lists.isEmpty(people)}">
    <div class="panel-body">
        <ul class="list-group">
        <li class="list-group-item" th:each="person:${people}">
          <span th:text="${person.name}"></span>
          <span th:text="${person.age}"></span>
        </li>
        </ul>
    </div>
</div>

E、js中獲取model資料

<script th:inline="javascript">
    var single = [[${singlePerson}]];
    console.log(single.name + "/" + single.age);
</script>

通過<script th:inline="javascript">才能使js直接獲取到model中的資料;[[${}]]獲取model中的資料