Spring Boot






todo



webFlux
Spring Boot  webFlux


第三方資料


long77
http://www.cnblogs.com/cnblog-long/category/1042057.html

博客對應源碼
https://github.com/lianggzone/springboot-action


怎麼看文檔



先指南
每一個章節 , 通常只看關注的章節

很是趕時間的話 , 直接根據問題看文檔
‘How-to’ guides


下載源碼



rimraf spring-boot-source   &&   git clone --depth 1  https://github.com/spring-projects/spring-boot.git
文件名太長
rimraf spring-boot-source  &&  git clone --depth 1 https://github.com/spring-projects/spring-boot.git
Cloning into 'spring-boot'...
remote: Counting objects: 8053, done.
remote: Compressing objects: 100% (5295/5295), done.
remote: Total 8053 (delta 2601), reused 4671 (delta 1342), pack-reused 0
Receiving objects: 100% (8053/8053), 5.49 MiB | 233.00 KiB/s, done.
Resolving deltas: 100% (2601/2601), done.
error: unable to create file spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/DependencyManagementPluginActionIntegrationTests-helpfulErrorWhenVersionlessDependencyFailsToResolve.gradle: Filename too long
Checking out files: 100% (5201/5201), done.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'


經常使用依賴


<!-- region QueryDSL -->

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>com.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
        </dependency>
        <!-- endregion QueryDSL -->


必備插件



# 在控制檯裏打印 MyBatis SQL語句 ( 訪問的是本身的數據庫 ) , 方便開發階段調試
#log4j.logger.druid.sql.Statement = DEBUG

server.port = 8011

<!-- Lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<!-- 熱更新 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<!-- project 下 -->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>




 
歸類到 spring,不是Spring Boot 獨有的

只有兩我的能夠用聊天室,由於配置


但另外一個你們都能收穫得
 
這個無視   9001端口 代碼中沒出現
 


各類依賴,應該讓Maven 管理,否則版本各類問題,並且互相拷貝不方便

基於gradled
2.15開始構建

問題


修改內置的 Tomcat 端口號


在application.properties中添加
server.port=8011
可將tomcat默認端口號修改成8011



信息: validateJarFile(E:\web\WebSocketProject\WebSocketJavaProject\target\WebsocketHome\WEB-INF\lib\javax.el-api-3.0.0.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/el/Expression.class



WEB-INF/lib/servlet-api.jar not loaded
http://www.cnblogs.com/zdz8207/p/java-tomcat-servlet-api-jar-not-loaded.html

H:\Software\Tomcat\apache-tomcat-7.0.34\lib
下的 servlet-api
拷貝到項目裏
E:\web\daJin\WebRoot\WEB-INF\lib


依賴包導入

配置一下,注意web的root根目錄  參考  http://www.2cto.com/kf/201608/539241.html
我同時用 第1 第2 種 方法
導入,用第1種
配置, 用第2種

https://github.com/roncoo/spring-boot-demo.git


最好的方式,只有項目源代碼,把IDE的東西刪掉,同一款IDE的配置文件極可能不通用,不一樣IDE之間更可能不通用

E:\web\daJin\out\artifacts\daJin_Web_exploded

E:\web\SpringBootInit
默認用 Hibernate 5.0.x
By default, Spring Boot uses Hibernate 5.0.x. However it’s also possible to use 4.3.x or 5.2.x if you wish. Please refer to the Hibernate 4 and Hibernate 5.2 samples to see how to do so.

 

Error creating bean with name 'servletContainer'





知識點




配置文件
http://blog.csdn.net/forezp/article/details/70437576
多個環境配置文件





建立項目的幾種方法:
IDE+插件,IDEA 自帶插件;eclipse+插件
在線web建立項目  https://start.spring.io/
命令行工具,Spring CLI
手動從零開始,建立Maven(重新建pom.xml文件開始 或者Gradle 項目


啓動過程當中
Tomcat started on port(s): 8011 (http)
提示後端端口號

即便有
Started Application in 28.003 seconds (JVM running for 37.966)
也可能還沒啓動成功 , 等一下


工具


Lombok 自動生成 setter 和 getter

<!-- Lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

Spring CLI


SdkMan 不提供win版本
http://sdkman.io/

官網也很難訪問

SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of various binary SDKs, including Groovy and the Spring Boot CLI. 

熱部署(熱更新) 工具  spring-boot-devtools


spring-boot-devtools 熱更新 "依賴"

pom裏添加依賴(參考博客 http://www.cnblogs.com/java-zhao/p/5502398.html)
<!-- 熱更新 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-devtools</artifactId>
	<optional>true</optional>
</dependency>

ctrl+F9 手動編譯一下,而後它會把項目 熱更新( 也會自動 部署 )
應該有辦法設置成一改動 Java 文件就自動 編譯+部署),但我以爲應該手動控制是否立刻熱部署。全都自動會浪費 CPU 資源, 我想多改幾行再一塊兒熱更新

不是 ctrl +F10 熱更新快捷鍵

IDEA 左下角出現這個說明成功,有可能還要多等一下

spring-boot-maven-plugin 熱更新 "插件"

若是上面的方法不行 ( 方法指的是添加 <artifactId>spring-boot-devtools</artifactId> 依賴 ),就在它的基礎上 加上這個插件
在 <project> 標籤下的 <build> 下的 <plugins> 下添加
build 和 dependencies 同一級別

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!-- 若是沒有該項配置, spring-boot-devtools 可能失效, 即沒法熱更新 -->
        <fork>true</fork>
    </configuration>
</plugin>

完整 :
在 <project> 下添加
<build>

		<plugins>

			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>

		</plugins>

	</build>
可能要添加
<version>1.5.1.RELEASE</version>

若是添加 spring-boot-devtools 依賴的話, 只是從新編譯,那編譯能成功,但沒有熱部署

注意
{
有時候想要更新的文件是 js html 等靜態資源,  而不是 class , 也是用 ctrl +F9 從新編譯
此時雖然左下角提示  "沒有更新任何東西":
可是確實是有更新靜態資源了, 刷新一下瀏覽器後就行,不行的話就不要當前頁面的緩存再刷新一次頁面
}

最後
這插件不強制必定要用某種打包方式打包整個項目,我都試過,皆可熱部署
 
建立新的方法沒法熱更新 , 提示空指針


JRebel




觸發熱更新 :
正常 build 編譯項目 , 自動替換有改動到的文件

簡介

(真實的 2.0 跟書上的不同了,至少用 JUnit 測試 這個章節不同了
書  1.3版本
   試着用低版本的,來熱更新

官網文檔


https://projects.spring.io/spring-boot/


國人翻譯的
https://github.com/qibaoguang/Spring-Boot-Reference-Guide

有簡單提到 JP 2.0 版本
http://docs.spring.io/spring-boot/docs/

而後找本身想要的版本
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/

博客精講

有一個能夠用的的小項目


FQ看
Spring Boot 命令行工具

約定大於配置 :提早配置好了 , 並非不配置 , 不配置機器怎麼可能知道要作什麼配置
Spring Boot

spring-boot是由 Pivotal團隊 提供的全新框架簡化新Spring應用的初始搭建以及開發過程

代碼生成工具
優先使用這個,雖然是社區維護,不是官方維護,但官方推薦用它。Spring Roo

npm install -g generator-jhipster



插件

LiveReload

測試

官方提供 JUnit 的測試例子
但,怎麼用TestNG測試Spring Boot

Spring Roo是個命令行工具
Spring Boot是極簡的框架,連註解都不多

問題

沒法熱更新,部署到內嵌的Tomcat

這個要先解決再開發,否則開發效率過低了,親身體驗
第三方依賴包,用代理的方式
-javaagent:E:\workspace\springloaded-1.2.3.RELEASE.jar -noverify
-javaagent:E:\MVNRepository\org\springframework\springloaded\1.2.6.RELEASE\springloaded-1.2.6.RELEASE.jar -noverify

插件
加了可選的 true 屬性







相關文章
相關標籤/搜索