使用Java做Web應(yīng)用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架,庫以及整個生態(tài)系統(tǒng)。經(jīng)過這么 長時間的發(fā)展,Java作為一個成熟的語言,也演化出了非常成熟的生態(tài)系統(tǒng),這也是許多公司采用Java作為主流的語言進(jìn)行服務(wù)器端開發(fā)的原因,也是為什 么Java一直保持著非?;钴S的用戶群。 最受Java開發(fā)者喜好的框架當(dāng)屬Spring,Spring也成為了在Java EE開發(fā)中真正意義上的標(biāo)準(zhǔn),但是隨著新技術(shù)的發(fā)展,腳本語言大行其道的時代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文件存在與項(xiàng)目中,繁瑣的配置,整合第三方框架的配置問題,低下的開發(fā)效率和部署效率等等問題。 這些問題在不斷的社區(qū)反饋下,Spring團(tuán)隊(duì)也開發(fā)出了相應(yīng)的框架:Spring Boot。Spring Boot可以說是至少近5年來Spring乃至整個Java社區(qū)最有影響力的項(xiàng)目之一,也被人看作是:Java EE開發(fā)的顛覆者(但是不是有點(diǎn)too young,too simple的感覺!)。 Spring Boot解決的問題(1) Spring Boot使編碼變簡單 (2) Spring Boot使配置變簡單 (3) Spring Boot使部署變簡單 (4) Spring Boot使監(jiān)控變簡單 (5) Spring的不足 Spring Boot的干爹和其優(yōu)點(diǎn)準(zhǔn)確的說,應(yīng)該是親爹,但是。。。大家都懂的! 官方地址:http://projects./spring-boot/ Spring Boot繼承了Spring的優(yōu)點(diǎn),并新增了一些新功能和特性: (1)SpringBoot是伴隨著Spring4.0誕生的,一經(jīng)推出,引起了巨大的反向; Spring Boot主要特性(1)遵循“習(xí)慣優(yōu)于配置”的原則,使用Spring Boot只需要很少的配置,大部分的時候我們直接使用默認(rèn)的配置即可; Spring Boot的核心功能(1)獨(dú)立運(yùn)行的Spring項(xiàng)目 Spring Boot可以以jar包的形式進(jìn)行獨(dú)立的運(yùn)行,使用: (2)內(nèi)嵌的Servlet容器 內(nèi)嵌容器,使得我們可以執(zhí)行運(yùn)行項(xiàng)目的主程序main函數(shù),是想項(xiàng)目的快速運(yùn)行; 主程序代碼SpringbootDemoApplication.java package com.xuliugen.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemoApplication.class, args);
}
}
(3)提供starter簡化Manen配置 Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,下邊是創(chuàng)建一個web項(xiàng)目中自動包含的依賴,使用的starter pom以來為: Spring Boot官網(wǎng)還提供了很多的starter pom,請參考: http://docs./spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter (4)自動配置Spring Spring Boot會根據(jù)我們項(xiàng)目中類路徑的jar包/類,為jar包的類進(jìn)行自動配置Bean,這樣一來就大大的簡化了我們的配置。當(dāng)然,這只是Spring考慮到的大多數(shù)的使用場景,在一些特殊情況,我們還需要自定義自動配置; (5)應(yīng)用監(jiān)控 Spring Boot提供了基于http、ssh、telnet對運(yùn)行時的項(xiàng)目進(jìn)行監(jiān)控;這個聽起來是不是很炫酷! 示例:以SSH登錄為例 1、首先,添加starter pom依賴 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>
2、運(yùn)行項(xiàng)目,此時在控制臺中會出現(xiàn)SSH訪問的密碼: 3、使用SecureCRT登錄到我們的程序,端口為2000,用戶為user: 密碼就是剛才的shell access; 但是當(dāng)我點(diǎn)擊連接的時候,出現(xiàn)錯誤: 顯然是SecureCRT的版本不支持,所以就放棄了這個,使用Git Bash: ssh -p 2000 user@127.0.0.1
剩下的事情,大家自己玩吧! (6)無代碼生成和XML配置 Spring Boot神奇的地方不是借助于代碼生成來實(shí)現(xiàn)的,而是通過條件注解的方式來實(shí)現(xiàn)的,這也是Spring 4.x的新特性。 Spring Boot的快速搭建案例下邊使用的是IDEA快速搭建一個Spring Boot項(xiàng)目 (1)File—-New—New Project (2)點(diǎn)擊Next填寫相應(yīng)的信息 (3)點(diǎn)擊Next,選擇Dependencies,這里創(chuàng)建Web項(xiàng)目選擇—–Web: (4)點(diǎn)擊Next,設(shè)置項(xiàng)目名稱,這里默認(rèn)設(shè)置,點(diǎn)擊Next之后,項(xiàng)目等一下就創(chuàng)建好了 找到應(yīng)用程序的主函數(shù),運(yùn)行即可: 注意,在pom文件里的java版本這個要和你的機(jī)子上一致!我的是1.7,默認(rèn)創(chuàng)建項(xiàng)目的時候位1.8: <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
</properties>
|
|