Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
什么是Spring
我們說到Spring,一般指代的是Spring Framework,它是一個開源的應用程序框架,提供了一個簡易的開發方式,通過這種開發方式,將避免那些可能致使代碼變得繁雜混亂的大量的業務/工具對象,說的更通俗一點就是由框架來幫你管理這些對象,包括它的創建,銷毀等。
什么是Spring MVC
Spring MVC是Spring的一部分,Spring 出來以后,大家覺得很好用,于是按照這種模式設計了一個 MVC框架(一些用Spring 解耦的組件),主要用于開發WEB應用和網絡接口,它是Spring的一個模塊,通過Dispatcher Servlet, ModelAndView 和 View Resolver,讓應用開發變得很容易。
什么是Spring Boot
初期的Spring通過代碼加配置的形式為項目提供了良好的靈活性和擴展性,但隨著Spring越來越龐大,其配置文件也越來越繁瑣,太多復雜的xml文件也一直是Spring被人詬病的地方,特別是近些年其他簡潔的WEB方案層出不窮,如基于Python或Node.Js,幾行代碼就能實現一個WEB服務器,對比起來,大家漸漸覺得Spring那一套太過繁瑣,此時,Spring社區推出了Spring Boot,它的目的在于實現自動配置,降低項目搭建的復雜度,如需要搭建一個接口服務,通過Spring Boot,幾行代碼即可實現。
安裝JDK
下載JDK12https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
安裝IntelliJ
下載IntelliJhttps://www.jetbrains.com/idea/download/#section=windows
IntelliJ是由 jetbrains 開發的收費IDE軟件,使用體驗比 Eclipse 好很多
配置JDK
我們需要為 JDK 設置環境變量 JAVA_HOME,以為引用 JDK 的程序可以找到
設置 Windows 環境變量 JAVA_HOME 指向 JDK 安裝目錄
設置環境變量需要重啟電腦
安裝Spring Boot
IntelliJ默認是支持 Spring Boot 項目的,不過名字叫做 Spring Initializr 就是了
建立Spring Boot項目
測試Spring Boot項目
package com.example.demo.model;
public class Test {
private final long id;
private final String content;
public Test(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
package com.example.demo.controller;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.model.Test;
@RestController
public class TestController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/counter")
public Test dealTest(@RequestParam(value="name", defaultValue="World") String name) {
return new Test(counter.incrementAndGet(),
String.format(template, name));
}
}
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
Spring Boot轉Web
<packaging>war</packaging>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
Apache Maven
下載
從官網下載 maven 包,地址 http://maven.apache.org/download.cgi
選擇 Binary 包下載,地址 https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
解壓縮得到 apache-maven-3.6.1 目錄
導入
Mirror
設置鏡像
如果發現 repo.maven.apache.org 慢的話可以設置一些鏡像地址來提高速度
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
打包war
打包war
我們需要將項目打包成war,用來部署到tomcat上
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:2
9+08:00)
Maven home: C:\Users\tongfu\eclipse\jee-2019-06\eclipse\apache-maven-3.6.1\bin\.
.
Java version: 12.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java
\jdk-12.0.2
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:00 min
[INFO] Finished at: 2019-08-28T17:54:54+08:00
[INFO] ------------------------------------------------------------------------
https://m.tongfu.net/home/35/blog/512539.html
質文章,及時送達
最近正好也沒什么可忙的,就回過頭來鼓搗過去的知識點,到Servlet部分時,以前學習的時候硬是把從上到下的繼承關系和接口實現記得亂七八糟。
這次利用了IDEA的diagram,結果一目了然,也是好用到炸裂,就此分享。學會下面功能,了解諸如主流框架源碼之類的東西,就非常舒服了。
在你想查看的類的標簽頁內,點擊右鍵,選擇 Diagrams,其中有 show 和 show ... Popup,只是前者新建在標簽頁內,后者以浮窗的形式展示:
實際上,你也可以從左邊的項目目錄樹中,對你想查看的類點擊右鍵,同樣選擇Diagrams,效果是一樣的:
然后你就會得到如下圖所示的繼承關系圖形,以自定義的Servlet為例:
顯而易見的是:
得到的繼承關系圖形,有些并不是我們想去了解的,比如上圖的Object和Serializable,我們只想關心Servlet重要的那幾個繼承關系,怎么辦?
簡單,刪掉。點擊選擇你想要刪除的類,然后直接使用鍵盤上的delete鍵就行了。清理其他類的關系后圖形如下:
有人說,誒,這怎么夠呢,那繼承下來的那些方法我也想看???簡單,IDEA通通滿足你。
在頁面點擊右鍵,選擇 show categories,根據需要可以展開類中的屬性、方法、構造方法等等。當然,第二種方法也可以直接使用上面的工具欄:
然后你就會得到:
什么,方法里你還想篩選,比如說想看protected權限及以上范圍的?簡單,右鍵選擇 Change Visibility Level,根據需要調整即可。
什么,你嫌圖形太小你看不清楚?IDEA也可以滿足你,按住鍵盤的Alt,竟然出現了放大鏡,驚不驚喜,意不意外?
當我們還需要查看其他類和當前類是否有繼承上的關系的時候,我們可以選擇加其加入到當前的繼承關系圖形中來。
在頁面點擊右鍵,選擇 Add Class to Diagram,然后輸入你想加入的類就可以了:
例如我們添加了一個Student類,如下圖所示。好吧,并沒有任何箭頭,看來它和當前這幾個類以及接口并沒有發生什么不可描述的關系:
如果你想查看某個類中,比如某個方法的具體源碼,當然,不可能給你展現在圖形上了,不然屏幕還不得撐炸?
但是可以利用圖形,或者配合IDEA的structure方便快捷地進入某個類的源碼進行查看。
雙擊某個類后,你就可以在其下的方法列表中游走,對于你想查看的方法,選中后點擊右鍵,選擇 Jump to Source:
在進入某個類后,如果還想快速地查看該類的其他方法,還可以利用IDEA提供的structure功能:
選擇左側欄的structure之后,如上圖左側會展示該類中的所有方法,點擊哪個方法,頁面內容就會跳轉到該方法部分去。
用上面提到的的IDEA這些功能,學習和查看類關系,了解諸如主流框架源碼之類的東西,可以說是非常舒服了。
http://blog.csdn.net/qq_27093465/article/details/52857307
作者:Dulk
鏈接:www.cnblogs.com/deng-cc/p/6927447.html
-END-
如果看到這里,說明你喜歡這篇文章,請轉發。同時標星(置頂)本公眾號可以第一時間接受到博文推送。1. IDEA常用插件一覽,讓效率成為習慣兩小時入門Docker(好文推薦)3.Java虛擬機內存模型InnoDB一棵B+樹可以存放多少行數據?
權聲明:本文為CSDN博主「李阿昀」的原創文章
原文鏈接:https://blog.csdn.net/yerenyuan_pku/article/details/115691429
大家好,我是你們的李阿昀,今天開始,我來給大家講解一下IntelliJ IDEA的安裝、配置與使用。
那IntelliJ IDEA是什么呢?應該說看到這篇文章的小伙伴,應該都知道了,否則的話,你也不會打開我這篇文章來學習IntelliJ IDEA這樣的一個工具。如果用最簡單的語言來介紹IntelliJ IDEA,那就是Java的集成開發環境,通俗來講,就是使用IntelliJ IDEA去開發我們的Java應用程序。
為什么我們要了解IntelliJ IDEA呢?應該說基于如下的幾個原因。
其一,進行Java開發或者大數據開發,乃至于說做移動端、安卓開發的小伙伴,應該都知道一個叫做Eclipse的工具,或者之前的話,主體都在用Eclipse進行開發,它和從今天開始我要為大家講解的IntelliJ IDEA是競爭關系,原先主流大家都在用Eclipse,但是現在IntelliJ IDEA的市場占有率節節攀升,應該說非常高了,我沒有具體去看這樣的一個比例,你要說到不了一半的話,它也應該對Eclipse的沖擊是很大的,所以,雖然它倆現在都是比較主流的Java集成開發環境,但是如果你之前使用的是Eclipse,那么建議你盡快遷移到IntelliJ IDEA中。
其二,很多自學Java的小伙伴,在看書或者教程的時候,依然還是主體在用Eclipse,但是一旦進入公司以后,發現公司主體在用IntelliJ IDEA,由于對這個Java集成開發環境不熟悉,心里難免打退堂鼓,所以內心迫切希望能有一套關于IntelliJ IDEA使用的系列教程,引領自己快速熟悉一下IntelliJ IDEA。
其三,筆者也發現身邊的一些朋友,尤其是在大公司的,比如滴滴、百度、阿里等,他們現在開發也確實很多都在用IntelliJ IDEA,說明IntelliJ IDEA在這些一線的互聯網公司里面,還是非常被認可的。
好,基于上面這樣的幾個原因,我就有必要來為大家講述一下IntelliJ IDEA的安裝、配置與使用了。
筆者在這里花費了極大的心血為大家一個字一個字寫出了這套關于IntelliJ IDEA使用的系列教程,而且還親身試驗,不可謂不細心,這套系列教程我總共寫了38篇文章,應該說我寫的是非常詳細了,大家按照我這套系列教程來進行學習IntelliJ IDEA就可以了。這套系列教程基本上涵蓋了IntelliJ IDEA使用的方方面面,當然了,除此之外,還有一些邊邊角角的內容我是沒寫到的,其實,你也沒必要把IntelliJ IDEA這個工具的全部使用細節全方位地、立體化地都關注到,就像我們Java里面,有很多類庫你是自始至終也用不著的,對吧!
在介紹IntelliJ IDEA之前,咱們得來介紹一下做出這個產品的公司,即JetBrains。IntelliJ IDEA這個產品就是JetBrains公司開發出來的,相應地,大家應該都知道Eclipse是IBM公司開發出來的吧
JetBrains是捷克的一家公司,我想,大家應該都知道中歐或者東歐的程序員是以思維嚴謹著稱的。該公司的官網地址是https://www.jetbrains.com,我們不妨去訪問一下該公司的官網,如下圖所示。
當然了,毫無疑問,其官網是純英文的,沒有中文喲。將光標放在官網首頁中的Developer Tools上,你就會看到羅列出來IntelliJ IDEA這個產品了。
同時,你也會發現這個公司不光開發了Java的集成開發環境(即IntelliJ IDEA),還開發了其他的一些產品,下面我來為大家簡單介紹一下這些產品。
AppCode:用于開發Objective-C/Swift。也就是,它是用來開發Mac以及蘋果手機IOS應用程序的集成開發環境,它可以替換掉Xcode喲~
CLion:用于開發C/C++
DataGrip:用于開發數據庫和SQL
GoLand:用于開發Go。不知道你聽說過區塊鏈沒,現在區塊鏈還是蠻火爆的,區塊鏈的主流開發語言就是Go語言
IntelliJ IDEA:用于開發Java,也就是從今天開始我們要學習的
PhpStorm:用于開發PHP
PyCharm:用于開發Python。Python現在非?;鸨?,最新的市場排名應該是超過了Java,在語言熱度排行榜上也是名列第一,可見它的市場之大,而且它非常適合目前大數據以及人工智能的開發,尤其是在數據分析、數據挖掘這些領域
Rider:用于開發.NET
RubyMine:用于開發Ruby/Rails
WebStorm:用于開發JavaScript、HTML5以及CSS3等前端技術。前端開發的小伙伴們,應該對WebStorm并不陌生
看我寫的這套系列教程的同學,主體應該是做Java開發的,對于其他語言具體開發的小伙伴們來說,JetBrains公司基本上也會推出相應的一些產品,而且在相關語言的開發工具方面地位也是數一數二的,可見JetBrains公司的強大。
最后,我還得說一嘴,不知道你聽說過Android Studio這個開發工具沒,它是進行安卓開發的一個集成開發環境,注意它不是JetBrains公司開發的,而是谷歌公司開發的,當然了,谷歌也是基于IntelliJ IDEA社區版進行迭代的,所以,它也可以說跟這個JetBrains公司是息息相關的。
一句話,現在主流的各種開發語言,JetBrains公司都提供了相應的集成開發環境,而且在相關領域里面都是非常有競爭力的。
IntelliJ IDEA(簡稱IDEA),是Java語言開發的集成環境,IDEA在業界被公認為是最好的Java開發工具之一,尤其在智能代碼助手、代碼自動提示、重構、J2EE支持、各類版本工具(Git、SVN、GitHub等)、JUnit、CVS整合、代碼分析和創新的GUI設計等方面的功能都值得稱道。
上面也說了,IntelliJ IDEA在業界被公認為是最好的Java開發工具之一,這兒已經夠謙虛了啊,還之一,你知道之前IntelliJ IDEA官網中它是怎么自己夸自己的嗎?在之前的IntelliJ IDEA官網中,有非常簡潔的一句話介紹,即:
The most intelligent Java IDE
這句話透漏出了兩個信息,其一,IntelliJ IDEA是一個Java的集成開發環境,其二,它稱自己是最智能、最人性化的Java集成開發環境(The most intelligent)。像這種字眼的話,我不知道那個時候國際審核時是怎么通過的,按說應該比國內要嚴格一些啊,但是竟然沒有把The most這樣的字眼去掉。大家知道現在咱們中國工商局監督一些個別的字眼是非常嚴格的,公司官網中是絕對不能出現像The most(最)這樣的字眼的,因為工商總局一直在盯著呢。就像當初羅永浩推出錘子手機的時候,他一開始也只能說自己家手機是東半球最好的手機,結果就招來了群毆,包括工商局也開始查他,最后,逼不得已才改成了是全球第二好用的手機,對吧,我不是最好的,我是第二的,第一你們就自己去意淫吧。在之前的IntelliJ IDEA官網中,它稱自己是The most,應該說還是非常自信的,或者說沒有被查也是一個幸運。不過,現在它也改了,它稱自己是:
Capable and Ergonomic IDE for JVM
翻譯過來,就是適用于JVM的功能強大且符合人體工程學的IDE,如下圖所示。
還有,上面我也說了,IntelliJ IDEA在某某(省略了)方面的功能可以說是超常的,這個你只有在后續的學習與使用過程當中,才能夠體會到,現在這樣說,你是沒有什么感覺的。
IntelliJ IDEA在2015年的官網上是這樣介紹自己的:
Excel at enterprise, mobile and web development with Java, Scala and Groovy, with all the latest modern technologies and frameworks available out of the box.
簡要翻譯一下就是,IntelliJ IDEA主要用于支持Java、Scala、Groovy等語言的開發,同時具備支持目前主流的技術和框架,擅長于企業應用、移動應用和Web應用的開發。
Java不用多說,至于這個Scala的話,如果你是做大數據開發,那么相信你肯定對Scala并不陌生,Spark底層源碼就是使用Scala來寫的,可見,Scala適合用于大數據開發。至于Groovy的話,它也是一門語言,它跟Scala一樣都可以使用Java中的類庫,大家應該知道,之所以好多人選擇學Java,其中一個最主要的原因就是Java有非常強大的類庫支持。為什么Scala和Groovy這兩個語言可以支持Java的類庫呢?因為它倆都是使用Java虛擬機進行解釋運行的。
應該說IntelliJ IDEA對自己的定位是非常清晰的,對于新人來講,可能不太理解,他會認為IntelliJ IDEA博而不精,當然,對于老用戶來講,對它這樣的描述應該還是比較認可的。
下面咱們從語言層面支持上簡單地對IntelliJ IDEA進行一個了解。
事實上,我們看到主流的開發語言IntelliJ IDEA都可以支持,安裝插件之后就能支持相關的一些語言了,另外,它還支持主流的數據庫,例如MySQL、Oracle等,除此之外,它還支持Java(這不是廢話嘛)、Groovy以及Scala等語言。
我們看一下IntelliJ IDEA還能支持些什么?如下表所示。
可以看到IntelliJ IDEA還支持主流的框架、代碼提示(關于這一點,我們待會也會提到,這是IntelliJ IDEA中非常好的一點)以及主流的服務器。
如果單純地要講IntelliJ IDEA的優勢,那么我們可能要說很久才能說完,就好比是我們要談手機的優勢是什么,我們要談的話,可能一百個都打不住,但是如果我們要說蘋果手機和小米手機比,小米手機的優勢是什么,這樣的話,就不多了,因為我們把它們共性的那些優勢都干掉了。
同理,我們這里來講IntelliJ IDEA的優勢,也是相較于Eclipse來講的,如果你之前沒有接觸過Eclipse,那這塊,你就聽一聽好了,如果你之前接觸過Eclipse的話,那最好了,這塊可能會引起你的一些共鳴,通過兩相對比,你就能夠知道為什么現在很多人都從Eclipse遷移到IntelliJ IDEA中了。
很多自學Java的小伙伴,在看書或者教程的時候,依然還是主體在用Eclipse,但是一旦進入公司以后,發現公司主體在用IntelliJ IDEA,剛開始肯定會非常不適應,等用一段時間之后,會發現特別好用。這個時候,如果我問你你覺得IntelliJ IDEA跟Eclipse相比,好處都有哪些呢?你有可能嗶嗶嗶說了一大堆,比如你說了10個IntelliJ IDEA的好處,結果其中5個Eclipse都可以做,那么這就暴露出你的一個問題了,不是說你對IntelliJ IDEA有多熟悉,反而是暴露了你對Eclipse有多么的不熟悉。其實,這也是面試的一個小技巧,就是有的時候吧,你說的多,并不一定是一件好事,對吧
廢話不多說,下面我們來看看相較于Eclipse而言,IntelliJ IDEA的主要優勢,這幾個主要優勢,也算是以小見大吧!
強大的整合能力
對于Git、Maven、Spring等這樣的一些框架或者版本控制工具,IntelliJ IDEA的支持度是非常高的,而且,IntelliJ IDEA本身也已經集成了相關的一些插件,至于你用不用,這是另外一說了。
提示功能的快速、便捷
我們在Eclipse當中,肯定也要用提示了,通常的話,我們執行一個.的操作就會出來提示了,或者在我們寫某一個類時,寫出該類的前幾個字符,相關的提示也就出來了。在IntelliJ IDEA中,你會發現它提示的速度非???,而且使用的范圍也非常廣,真正用起來以后,你會發現跟Eclipse相比,它確實要好一些。
提示功能的范圍廣
這里,我們就要吐槽一下Eclipse了,Eclipse的版本有很多,按照Luna、Mars、Neon以及Oxygen這樣的順序一直往下排,之前我用的比較多的是Mars這個版本,在我使用Eclipse的過程中,經常會碰到一個問題,那就是寫一些前端代碼的時候,比如HTML、JS,包括JSP、XML,會發現這個版本的Eclipse支持JSP的提示,換成下個版本,它又支持JS提示了,就沒有一個版本對這些語言都支持,這就非常令人惡心了,你會在心里犯嘀咕,到底用哪個版本最好呢,這其實取決于你對哪個版本更熟悉,哪個提示功能你用的比較多,那你就用哪個版本的。
而IntelliJ IDEA就不是這樣子的了,它的各個版本對我們以上提到的不管是HTML也好,還是XML也好,還是JS也好,都是可以提示的。同時,我這里也截了一張圖,如下所示。
我這里是要說明什么呢?等咱們后續在IntelliJ IDEA中關聯好數據庫以后,當你在框架里面編寫一條查詢數據庫表的SQL語句時,你會發現在寫FROM后面表名的時候,IntelliJ IDEA也給我們做出了一個提示,這樣就很好地規避了SQL語句編寫時出現的一些錯誤。其實,不只是表名會給我們提示出來,當我們去查詢一些具體的列名時,IntelliJ IDEA也會給我們提示,這點就非常好,因為它提示的范圍足夠廣。
好用的快捷鍵和代碼模板
我們不管是做Java開發也好,還是做其他語言的開發也好,快捷鍵是我們必須要用的,因為這能夠增加我們的開發效率。在這套系列教程里面,我也會講到快捷鍵的使用,在IntelliJ IDEA中,其快捷鍵也是非常豐富的。
這一點,老實說,其實還不是IntelliJ IDEA主要的優勢,因為Eclipse也都有啊。這里,我想說的是,如果大家是首次使用IntelliJ IDEA,那么不建議你去跟Eclipse的那套快捷鍵做對比,直接就用IntelliJ IDEA中的這套快捷鍵就哦了,但是如果你之前是用Eclipse做開發的,現在要切換到IntelliJ IDEA中,或者現在公司當中既有使用Eclipse開發的項目也有使用IntelliJ IDEA開發的項目,還都需要你來參與,那么建議你最好是將快捷鍵設置成一套的,否則的話,你的大腦肯定是要分裂的,腦子就一團漿糊了,唉,怎么這個快捷鍵不好使,好家伙,原來它是另外一個集成開發環境中的。
在這套系列教程中,講解快捷鍵的時候我也提到這個事了,即怎么把IntelliJ IDEA中的快捷鍵改成Eclipse那一套。
代碼模板也會在我這套系列教程中詳細講到。我們在開發當中,經常會寫一些比如for循環、if條件判斷等等這樣一些固定結構的代碼,甚至包括我們聲明一個private static final的變量,這些都是屬于一些固定格式,那么我們就可以把常寫的這樣一些代碼編輯成一些模板,例如,我可以直接通過寫prsf這幾個字符的方式把private static final這樣的三個關鍵字的聲明給調出來,從而極大提高我們的開發效率。
精準搜索
搜索也是我們實際開發當中難以避免的,我們也需要經常使用。在代碼或者文件當中,如果我們要搜索任意的類、文件、符號(符號主要就是方法、屬性等等)或者字符串,那么你會發現在IntelliJ IDEA中的體驗會非常好,非常的精準,而且速度也快,最終的搜索結果也很全面。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。