跳到主要內容

Spring-boot01_如何寫文案


※別再煩惱如何寫文案,掌握八大原則!



什麼是銷售文案服務?A就是幫你撰寫適合的廣告文案。當您需要販售商品、宣傳活動、建立個人品牌,撰寫廣告文案都是必須的工作。


本文記錄Spring-Boot學習途中的點點滴滴。
其實Spring-Boot出來好長時間了,但是一直沒去關注過。之前在我的印象里Spring-Boot好就好在減去了很多XML配置,加入了很多自動配置,將註解運用到了極致。想想好像也沒啥技術點可以去學習,不過最近打算用spring-Boot做個小網站啥的,才突然發現
Spring-Boot的強大。果真應了那句話:真香!


1.先來說下Spring-Boot入門大法:
按以往的項目經驗,那沒啥可說,MAVEN工程啟動就完事兒了,但最近更新了下IDEA,發現項目啟動項中多了一欄:

去Spring官網看了看,發現這玩意兒簡直太好了,用這個Spring啟動項,它會將SpringWEB開發中要用到的一切組件場景都一一給你羅列出來,這下方便了不用再去寫POM了。直接勾選web服務IDEA就為你自動配置好了。還有什麼Springdata,Nosql,SQL....這些場景你只需勾選IDEA會幫你自動配置。
這個插件實數良心。


項目部署完成后,我一臉懵逼,啥?沒有WEB-INF目錄,寫個鎚子的WEB呀。我JSP放哪兒?
果然太年輕,Spring-BOOT以JAR包的方式運行在內嵌的Tomcat下,根本不支持JSP。那用什麼渲染前端?
答:HTML。
對就是這麼簡單,用最原始的HTML就行了,也不需要WEB-INF目錄,Spring-Boot有自己的規定,Spring-Boot自動去以下目錄:
"classpath:/META‐INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" "/"去找。


2、SpringBoot對靜態資源的映射規則


查看源碼我們可以發現,Spring-Boot對靜態資源的幾種映射規則:
if (!registry.hasMappingForPattern("/webjars/**")) { customizeResourceHandlerRegistration( registry.addResourceHandler("/webjars/**") .addResourceLocations( "classpath:/META‐INF/resources/webjars/") .setCachePeriod(cachePeriod)); }


所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找資源;
webjars:以jar包的方式引入靜態資源;
可以去WEBJAR的官網找到這些包。
http://www.webjars.org/
localhost:8080/webjars/jquery/3.3.1/jquery.js


3、模板引擎
既然不支持JSP,不可能只用原始的HTML吧?不會吧。不會吧。
答:支持Thymeleaf.


這玩意兒第一次使用還是在我開始學JAVA web的時候,總的來說跟JSP大同小異,但是句法更強大。總比C:那一套強多了!
Thymeleaf有自己的渲染規則,默認在classpath:/templates/"下對所有html進行渲染。為什麼非得是/templates,我也不知道,源碼是這麼寫的。。。


※教你寫出一流的銷售文案?



銷售文案是什麼?A文案是廣告用的文字。舉凡任何宣傳、行銷、販賣商品時所用到的文字都是文案。在網路時代,文案成為行銷中最重要的宣傳方式,好的文案可節省大量宣傳資源,達成行銷目的。



@ConfigurationProperties(prefix = "spring.thymeleaf") public class ThymeleafProperties { private static final Charset DEFAULT_ENCODING = Charset.forName("UTF‐8"); private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html"); public static final String DEFAULT_PREFIX = "classpath:/templates/"; public static final String DEFAULT_SUFFIX = ".html";


跟之前的JSP句法規則對比:


4.配置文件
再來說說配置文件,之前什麼SSM,ssh一大堆的配置文件到Spring-Boot都跑哪兒去了?
(Spring-Boot)答:爺不需要配置文件。
玩笑歸玩笑,哪有不需要程序員去配置的項目。但是細看Spring-Boot底層源碼,它已經將很多MVC,視圖解析器,包掃描器等都已經自動注入場景了,根本不用去配置。
但是Spring-BOOT也提供了兩個全局默認配置文件。
SpringBoot使用一個全局的配置文件,配置文件名是固定的;
•application.properties
•application.yml


YAML(YAML Ain't Markup Language)
YAML A Markup Language:是一個標記語言
YAML isn't Markup Language:不是一個標記語言;
標記語言:
以前的配置文件;大多都使用的是 xxxx.xml文件; YAML:以數據為中心,比json、xml等更適合做配置文件;


YAML的句法可自行去了解,比起Properties.只能說有好有壞吧,本人比較喜歡用properties,但是面對複雜屬性包裝的時候比如:MAP,List等用YAML去配置簡潔許多


5.註解
學新東西,必然得了解下一些註解的作用。
主程序類,主入口類:

@SpringBootApplication: Spring Boot應用標註在某個類上說明這個類是SpringBoot的主配置類,SpringBoot 就應該運行這個類的main方法來啟動SpringBoot應用;
@SpringBootConfiguration:Spring Boot的配置類; 標註在某個類上,表示這是一個Spring Boot的配置類;
@Configuration:配置類上來標註這個註解;
配置類 ----- 配置文件;配置類也是容器中的一個組件;@Component
@EnableAutoConfiguration:開啟自動配置功能; 以前我們需要配置的東西,Spring Boot幫我們自動配置;
@EnableAutoConfiguration告訴SpringBoot開啟自 動配置功能;這樣自動配置才能生效;


@AutoConfigurationPackage:自動配置包
@Import(AutoConfigurationPackages.Registrar.class): Spring的底層註解@Import,給容器中導入一個組件;
導入的組件由 AutoConfigurationPackages.Registrar.class;
將主配置類(@SpringBootApplication標註的類)的所在包及下面所有子包裏面的所有組件掃描到Spring容器;
@Import(EnableAutoConfigurationImportSelector.class);
給容器中導入組件? EnableAutoConfigurationImportSelector:導入哪些組件的選擇器;
將所有需要導入的組件以全類名的方式返回;這些組件就會被添加到容器中; 會給容器中導入非常多的自動配置類(xxxAutoConfiguration);就是給容器中導入這個場景需要的所有組件, 並配置好這些組件;


今日到此結束。。每天記下日誌框架和自動配置原理。
總結:有過SSM,SSH基礎的來說學起來相當清爽,Spring-Boot砍掉這很多煩人的配置,規定了自己的渲染原則,總的來說確實比之前的開發效率強多了。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益



擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。





Orignal From: Spring-boot01_如何寫文案

留言

這個網誌中的熱門文章

2016年電動車和插電式混合動力車銷量預計將超過70萬輛

中汽協日前預測,2016年全國電動汽車和插電式混合動力車的銷量預計將超過70萬輛,較2015年的銷量增長一倍。 2015年電動車和插電式混合動力車的合併銷量為331092輛,較2014年增長了340%。其中包括247482輛電動車和83610輛插電式混合動力車,在24萬輛多的電動汽車銷量中,包括146719輛乘用車,另有100763輛為商用車。插電式混合動力車的銷量中,60663輛為乘用車,22947輛為商用車。 根據2015年起草的藍圖,政府計畫到2020年在全國範圍內新建12000個充電站和480枚充電樁。2014年年底,全國共有780個充電站共31000枚充電樁。2015年政府還為27個省市自治區設定了電動車的最低銷量目標。 政府預計,這些措施到位後,自主品牌車企的電動車和插電式混合動力車銷量到2020年可達100萬輛,到2025年可達300萬輛。 本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理 【其他文章推薦】 ※為什麼 USB CONNECTOR 是電子產業重要的元件? ※ 網頁設計 一頭霧水??該從何著手呢? 找到專業技術的 網頁設計公司 ,幫您輕鬆架站! ※想要讓你的商品成為最夯、最多人討論的話題? 網頁設計公司 讓你強力曝光 ※想知道最厲害的 台北網頁設計公司推薦 、 台中網頁設計公司推薦 專業設計師"嚨底家"!! Orignal From: 2016年電動車和插電式混合動力車銷量預計將超過70萬輛

012.Kubernetes二進制部署worker節點Flannel

一 部署flannel 1.1 安裝flannel kubernetes 要求集群內各節點(包括 master 節點)能通過 Pod 網段互聯互通。flannel 使用 vxlan 技術為各節點創建一個可以互通的 Pod 網絡,使用的端口為 UDP 8472。 flanneld 第一次啟動時,從 etcd 獲取配置的 Pod 網段信息,為本節點分配一個未使用的地址段,然後創建 flannedl.1 網絡接口(也可能是其它名稱,如 flannel1 等)。 flannel 將分配給自己的 Pod 網段信息寫入 /run/flannel/docker 文件,docker 後續使用這個文件中的環境變量設置 docker0 網橋,從而從這個地址段為本節點的所有 Pod 容器分配 IP。 更多flannel參考:《008.Docker Flannel+Etcd分佈式網絡部署》。 提示:k8smaster01節點已下載相應二進制,可直接分發至node節點。 1.2 分發flannel 1 [root@k8smaster01 ~]# cd /opt/k8s/work 2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh 3 [root@k8smaster01 work]# for node_ip in ${NODE_IPS[@]} 4 do 5 echo " >>> ${node_ip} " 6 scp flannel/{flanneld,mk-docker-opts.sh} root@${node_ip}:/opt/k8s/bin/ 7 ssh root@${node_ip} " chmod +x /opt/k8s/bin/* " 8 done 1.3 創建flannel證書和密鑰 提示:k8smaster01節點已創建flanneld的CA證書請求文件,可直接分發至node節點。 1.4 分發證書和私鑰 1 ...

怎麼把CAT客戶端的RootMessageId記錄到每條日誌中?

什麼是RootMessageId? 為了理解RootMessageId先簡單介紹一下CAT的數據結構設計。CAT客戶端會將所有消息都封裝為一個完整的消息樹(MessageTree),消息樹可能包括Transaction、Event、Heartbeat、Metric等類型的消息。具體如下: Transaction:適合記錄跨越系統邊界的程序訪問行為,比如遠程調用,數據庫調用,也適合執行時間較長的業務邏輯監控,Transaction用來記錄一段代碼的執行時間和次數 Event:用來記錄一件事發生的次數,比如記錄系統異常,它和transaction相比缺少了時間的統計,開銷比transaction要小 Heartbeat:表示程序內定期產生的統計信息, 如CPU利用率, 內存利用率, 連接池狀態, 系統負載等 Metric:用於記錄業務指標、指標可能包含對一個指標記錄次數、記錄平均值、記錄總和,業務指標最低統計粒度為1分鐘 歡迎關注微信公眾號: 萬貓學社 ,每周一分享Java技術乾貨。 其中,Transaction類型的消息可作為消息樹節點,而其他消息只可作為消息樹的恭弘=叶 恭弘子節點,也就是Transaction是一個可嵌套的遞歸結構。比如: 消息樹的每一節點都有一個屬性messageId,用來唯一表示節點本身,其構成為:{domain}-{ip}-{timestamp}-{自增index}。另外還有兩個屬性,分別是parentMessageId, rootMessageId。parentMessageId表示父節點的messageId; rootMessageId 則表示整個消息樹的根節點的messageId。這兩個屬性在之後CAT的調用鏈分析與分佈式調用鏈分析中發揮了關鍵作用。 歡迎關注微信公眾號: 萬貓學社 ,每周一分享Java技術乾貨。 為什麼在日誌中記錄? 根據RootMessageId可以追蹤某一個請求的整個分佈式調用鏈,結合每一條日誌快速定位耗費性能的癥結,做針對性的性能優化。更加方便地做性能優化,特別是TP95、TP99等指標。 遇到偶爾發生的bug,是最讓人頭疼的,只有先從日誌中找線索,但是在海量的日誌中找到出現bug的那一個請求是很困難的。有了上游API提供的RootMessage...