Ⅰ Java開發Solr的時候,經常創建SolrQuery對象。可不可以將SolrQuery放到一個「池」里管理
零基礎學習java可按照這份大綱來進行學習
第一階段:Java專業基礎課程
----------
階段目標:
1. 熟練掌握Java的開發環境與編程核心知識
2. 熟練運用Java面向對象知識進行程序開發
3. 對Java的核心對象和組件有深入理解
4. 熟練應用JavaAPI相關知識
5. 熟練應用JAVA多線程技術
6. 能綜合運用所學知識完成一個項目
知識點:
1、基本數據類型,運算符,數組,掌握基本數據類型轉換,運算符,流程式控制制。
2、數組,排序演算法,Java常用API,類和對象,了解類與對象,熟悉常用API。
3、面向對象特性,集合框架,熟悉面向對象三大特性,熟練使用集合框架。
4、IO流,多線程。
5、網路協議,線程運用。
---------
第二階段:JavaWEB核心課程
階段目標:
1. 熟練掌握資料庫和Mysql核心技術
2. 深入理解JDBC與DAO資料庫操作
3. 熟練運用JSP及Servlet技術完成網站後台開發
4. 深入理解緩存,連接池,註解,反射,泛型等知識
5. 能夠運用所學知識完成自定義框架
知識點:
1、資料庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,約束,視圖,存儲過程,函數,觸發器,事務,游標,建模工具。
2、深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理。為Java後台開發打下堅實基礎。Web頁面元素,布局,CSS樣式,盒模型,JavaScript,jQuery。
3、掌握前端開發技術,掌握jQuery。
4、Servlet,EL表達式,會話跟蹤技術,過濾器,FreeMarker。
5、掌握Servlet相關技術,利用Servlet,JSP相關應用技術和DAO完成B/S架構下的應用開發。
6、泛型,反射,註解。
7、掌握JAVA高級應用,利用泛型,註解,枚舉完成自己的CRUD框架開發為後續框架學習做鋪墊。
8、單點登錄,支付功能,項目整合,分頁封裝熟練運用JSP及Servlet核心知識完成項目實戰。
---------
第三階段:JavaEE框架課程
階段目標:
1. 熟練運用Linux操作系統常見命令及完成環境部署和Nginx伺服器的配置
2. 熟練運用JavaEE三大核心框架:Spring,SpringMVC,MyBatis
3. 熟練運用Maven,並使用SpringBoot進行快速框架搭建
4. 深入理解框架的實現原理,Java底層技術,企業級應用等
5. 使用Shiro,Ztree和Spring,SpringMVC,Myts完成企業項目
知識點:
1、Linux安裝配置,文件目錄操作,VI命令,管理,用戶與許可權,環境部署,Struts2概述,hiberante概述。
2、Linux作為一個主流的伺服器操作系統,是每一個開發工程師必須掌握的重點技術,並且能夠熟練運用。
3、SSH的整合,MyBatis,SpringMVC,Maven的使用。
4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。
5、Shiro,Ztree,項目文檔,項目規范,需求分析,原型圖設計,資料庫設計,工程構建,需求評審,配置管理,BUG修復,項目管理等。
6、獨立自主完成一個中小型的企業級綜合項目的設計和整體架構的原型和建模。獨立自主完成一個大型的企業級綜合項目,並具備商業價值
Ⅱ 做Java的web開發用什麼框架
SSM(SpringMVC+Spring+MyBatis)
SSH(SpringMVC+Spring+Hibernate)
有的公司會用Struts2替代SpringMVC,但是SpringMVC已經稱為主流。
Solr作為一個檢索用的框架
Quartz定時任務框架
MQ消息隊列
Dubbo分布式服務
Jedis操作Redis的框架
Ⅲ solr3.5中如何用java代碼為PDF,Office等文件添加索引
1、將解壓包中的solr-4.7.1/dist/solr-4.7.1.war復制到tomcat_dir/webapps/目錄,並命名為solr.war。
2、將solr-4.7.1/example/lib/ext/目錄下的jar文件復制到tomcat/lib目錄下,將solr-4.7.1/example/resources/下的log4j.properties文件復制到tomcat_dir/lib目錄下;
切把 solr-4.7.1/example/solr,復制到tomcat_dir/bin下。
3、修改tomcat_dir/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
4、創建solr.xml,存放在路徑:tomcat/conf/Catalina/localhost/solr.xml,內容:
<Context path="/solr" docBase="C:\Tomcat 7.0\webapps\solr.war"
debug="0" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="C:\Tomcat 7.0\bin\solr\" override="true" />
</Context>
PS:上面的docBase和value路徑中不能存在中文字元,否則會出現404錯誤。
5、將C:\Tomcat 7.0\webapps下的solr.war包,啟動項目解壓;然後再添加幾個jar包:
solr-4.7.1\dist\solr-dataimporthandler-4.7.1.jar;
solr-4.7.1\dist\solr-dataimporthandler-extras-4.7.1.jar;
還要載入資料庫驅動包:mysql-connector-java-3.1.13-bin.jar
6、在C:\Tomcat 7.0\bin\solr\collection1\conf 下的solrconfig.xml增加以下資料庫配置:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
7、將tomcat\bin\solr\collection1\conf下增加data-config.xml文件,內容如下:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.1.221:3306/tmsdb"
user="root"
password="123456"/>
<document name="content">
<entity name="node" query="select id,author,title,content from solrdb">
<field column="id" name="id" />
<field column="author" name="author" />
<field column="title" name="title" />
<field column="content" name="content" />
</entity>
</document>
</dataConfig>
8、增加中文分詞器,ik-analyzer的配置如下:
①目前的中文分詞主要有兩種
1,基於中科院ICTCLAS的隱式馬爾科夫hhmm演算法的中文分詞器,例如smartcn等。(不支持自定義擴展詞庫)
2,基於正向迭代最細粒度切分演算法(正向最大匹配並且最細分詞)例如IK,庖丁等(支持自定義擴展詞庫)
安裝分詞前,可以去下載IK的分詞包 :
IK-Analyzer-4.7.1-0.0.1-SNAPSHOT.jar
下載完畢後,將此包放進tomcat\solr的\WEB-INF\lib下面:tomcat\webapps\solr\WEB-INF\lib 。
下面需要在solr的schemal.xml進行分詞器注冊:
<!-- 配置IK分詞器 -->
<fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<!-- 分詞-->
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>
<!-- 禁用詞過濾根據情況使用-->
<!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/> -->
</analyzer>
<analyzer type="query">
<!-- 分詞-->
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"/>
<!-- 禁用詞過濾根據情況使用-->
<!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/>-->
</analyzer>
</fieldType>
最後還得配置一個引用欄位就OK了
<field name="ik" type="text_ik" indexed="true" stored="true" multiValued="true"/>
②它的安裝部署十分簡單,將IKAnalyzer2012.jar部署亍項目的lib目錄中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目錄(對於web項目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可 ;然後配置solr4.7中schema.xml配置解析器:
<schema name="example" version="1.1">
……
<fieldType name="text" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
……
</schema>
Ⅳ jsp與solr結合實現網站搜索,怎麼弄
Solr是使用Ant進行管理的源碼, Ant是一種基於Java的build工具。理論上來說,它有些類似於Maven 或者是 C中的make。下載後解壓出來後,進行環境變數設置。
ANT_HOME:E:\Work\apache-ant\1.9.1 (這里為你自己解壓縮的目錄) PATH:%ANT_HOME%\bin (這個設置是為了方便在dos環境下操作)
查看是否安裝成功,在命令行窗口中輸入命令ant,若出現結果:
說明ant安裝成功!因為ant默認運行build.xml文件,這個文件需要我們建立。現在就可以進行build Solr源碼了。在命令行窗口中進入到你的Solr源碼目錄,輸入ant會出現當前build.xml使用提示信息。
其它的先不用管它,我們只要針對我們使用的IDE進行build就行了,如果使用eclipse就在命令行輸入:ant eclipse.如果使用IntelliJ IDEA 就在命令行輸入:ant idea。這樣就能進行build了。
黑窗口裡提示這個。。。
失敗。。。為什麼呢,最後我發現是因為下載的ant中少了一個jar就是這apache-ivy(下載地址:http://ant.apache.org/ivy/)這東東名子真怪 ivy是ant管理jar依賴關系的。當第一次bulid時ivy會自動把build中的缺少的依賴進行下載。網速慢的第一次build要好久的。。。
下載一個jar就行把jar放到ant的lib下(E:\Work\apache-ant\1.9.1\lib)這樣再次運行ant 就會成功了。到現在才可以進行Solr的代碼調試。
4.4配置並運行Solr代碼
不管用什麼IDE首選都要設置Solr Home在IDE的JVM參數設置VM arguments寫入 -Dsolr.solr.home=solr/example/solr一般就行了.不行也可以使用絕對路徑.
solr使用StartSolrJetty文件作為入口文件進行調試代碼,在這里可以設置伺服器使用的埠和solr的webapps目錄.一般都不用設置,默認的就可以進行調試.Solr Home也能可在代碼中設置一樣好用. System.setProperty("solr.solr.home", "E:\\Work\\solr-4.2.0-src-idea\\solr\\example\\solr");
目前是使用自帶的一個example作為solr配置的根目錄,如果你有其他的solr配置目錄,設置之即可。點擊run即可,debug也是一樣可以用了。沒有別的問題就應該能運行了.注意servlet 容器使用的埠,如查提示:
FAILED [email protected]:8983: java.net.BindException: Address already in use: JVM_Bind 就說明當前埠佔用中.改一下就可以了.如果沒有報錯啟動成功後就可以在瀏覽器中輸入地址: http://localhost:8983/solr/ 就可以看到如下界面
到這里Solr就成功配置並運行了.要是想跟代碼調試在啟動時在這個方法里點斷點就可以Initializer的initialize()方法如果想從瀏覽器中找斷點調試就要到SolrDispatchFilter的doFilter方法中點斷點了.
註:IE9在兼容模式下有bug,必須設置為非兼容模式。
5.Solr基礎
因為 Solr 包裝並擴展了Lucene,所以它們使用很多相同的術語。更重要的是,Solr 創建的索引與 Lucene 搜索引擎庫完全兼容。通過對 Solr 進行適當的配置,某些情況下可能需要進行編碼,Solr 可以閱讀和使用構建到其他 Lucene 應用程序中的索引。在 Solr 和 Lucene 中,使用一個或多個 Document 來構建索引。Document 包括一個或多個 Field。Field 包括名稱、內容以及告訴 Solr 如何處理內容的元數據。
Ⅳ 如何在eclipse中部署solr的web工程
1.新建Dynamic Web project項目
2.刪除WebContent下面的所有內容,並將apache-solr-3.5.0.war(下載dist文件夾中)所有內容復制到WebContent下面。
3.指定solrHome,在web.xml中添加以下內容
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>d:/</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
在這里指定solrHome=d:/
4.在d盤下配置solr cores(和solrHome對應),在d盤下新建solr.xml,內容如下:
<?xml version="1.0"encoding="UTF-8"?>
<solr persistent="false">
<!--
adminPath: RequestHandler path to manage cores.
If 'null'(or absent), cores will not be manageable via request handler
-->
<cores adminPath="/admin/cores">
<core name="core0" instanceDir="D:/solrHome2/multicore/core0" />
<core name="core1" instanceDir="D:/solrHome2/multicore/core1" />
</cores>
</solr>
5.從example下拷貝multicore到D:/solrHome2下
6.在eclipse中啟動solr
servers窗口->new Server->選擇一個server runtime enviroment->add 項目
Ⅵ 有哪些Java web里的並發框架,都有哪些
一、並發是一種需求,以下先介紹一下javaweb對於高並發的處理思路:
1、synchronized 關鍵字
可用來給對象和方法或者代碼塊加鎖,當它鎖定一個方法或者一個代碼塊的時候,同一時刻最多隻有一個線程執行這段代碼。可能鎖對象包括: this, 臨界資源對象,Class 類對象
2、同步方法
同步方法鎖定的是當前對象。當多線程通過同一個對象引用多次調用當前同步方法時, 需同步執行。
3、同步代碼塊
同步代碼塊的同步粒度更加細致,是商業開發中推薦的編程方式。可以定位到具體的同步位置,而不是簡單的將方法整體實現同步邏輯。在效率上,相對更高。
A)鎖定臨界對象
同步代碼塊在執行時,是鎖定 object 對象。當多個線程調用同一個方法時,鎖定對象不變的情況下,需同步執行。
B)鎖定當前對象
4、鎖的底層實現
Java 虛擬機中的同步(Synchronization)基於進入和退出管程(Monitor)對象實現。同步方法 並不是由 monitor enter 和 monitor exit 指令來實現同步的,而是由方法調用指令讀取運行時常量池中方法的 ACC_SYNCHRONIZED 標志來隱式實現的。
5、鎖的種類
Java 中鎖的種類大致分為偏向鎖,自旋鎖,輕量級鎖,重量級鎖。
鎖的使用方式為:先提供偏向鎖,如果不滿足的時候,升級為輕量級鎖,再不滿足,升級為重量級鎖。自旋鎖是一個過渡的鎖狀態,不是一種實際的鎖類型。
鎖只能升級,不能降級。
6、volatile 關鍵字
變數的線程可見性。在 CPU 計算過程中,會將計算過程需要的數據載入到 CPU 計算緩存中,當 CPU 計算中斷時,有可能刷新緩存,重新讀取內存中的數據。在線程運行的過程中,如果某變數被其他線程修改,可能造成數據不一致的情況,從而導致結果錯誤。而 volatile 修飾的變數是線程可見的,當 JVM 解釋 volatile 修飾的變數時,會通知 CPU,在計算過程中, 每次使用變數參與計算時,都會檢查內存中的數據是否發生變化,而不是一直使用 CPU 緩存中的數據,可以保證計算結果的正確。
更多、此外還有很多細節需要通過學習去了解和完善,此處就不一一列舉了。
二、並發框架
並發框架很多,如ExecutorService、RxJava、Disruptor、Akka等,具體選擇哪個(或者都不選擇)是根據項目需求選擇的,框架本身的差異並不大,基本都是如下模式
Ⅶ Javaweb中redis和solr哪個性能高,感覺這兩個留一個就可以了
這2個不是一類的東西啊。主要看你的需求。
redis是非關系型,在內存中以Key-Value形式存儲的資料庫。特點是速度非常非常快。
solr是一個搜索引擎。一般用來作為網站內的搜索功能。
Ⅷ java web 怎麼用solr
我們下載的Solr包後,進入Solr所在的目錄,我們可以看到以下幾個目錄:build、client、dist、example、lib、site、src。下面分別對其進行介紹。
1) build:該目錄是在ant build過程中生成的,其中包含了未被打包成jar或是war的class文件以及一些文檔文件。
2) client:該目錄包含了特定語言的Solr客戶端API,使得使用其他語言的用戶能通過HTTP用XML與Solr進行通話。現在該目錄裡面雖然包含javascript、python、ruby三個子目錄,但是到目前為止只包含一部分的ruby的代碼,其他語言仍是空的。另外,Solr的Java客戶端稱為SolrJ,其代碼位於src/solrj目錄下面。在之後的文章中我會詳細介紹Solr客戶端的使用。
3) dist:該目錄包含build過程中產生的war和jar文件,以及相關的依賴文件。還記得上一篇文章中,我們在build 1.4版本的Solr源代碼後需要部署example嗎?其實就是將該目錄下面的apache-solr-1.4.war部署到Jetty上面去,並重命名為solr.war。
4) example:這個目錄實際上是Jetty的安裝目錄。其中包含了一些樣例數據和一些Solr的配置。
其中一些子目錄也比較重要,這里也對它們稍作介紹。
l example/etc:該目錄包含了Jetty的配置,在這里我們可以將Jetty的默認埠從8983改為80埠。
l 將其中的8983埠換成80埠。注意更改埠後啟動Jetty可能會提示你沒有許可權,你需要使用sudo java -jar start.jar來運行。
l example/multicore:該目錄包含了在Solr的multicore中設置的多個home目錄。在之後的文章中我會對其進行介紹。
l example/solr:該目錄是一個包含了默認配置信息的Solr的home目錄。
詳見下面的「solr home說明」
l example/webapps:Jetty的webapps目錄,該目錄通常用來放置Java的Web應用程序。在Solr中,前面提到的solr.war文件就部署在這里。
5) lib:該目錄包含了所有Solr的API所依賴的庫文件。其中包括Lucene,Apache commons utilities和用來處理XML的Stax庫。
6) site:該目錄僅僅包含了Solr的官網的網頁內容,以及一些教程的PDF文檔。
7) src:該目錄包含了Solr項目的整個源代碼。這里對其各個子目錄也做相應的介紹。
l src/java:該目錄存放的是Solr使用Java編寫的源代碼。
l src/scripts:該目錄存放的是配置Solr伺服器的Unix BashShell腳本,在後面介紹多伺服器配置中將會有重要的作用。
l src/solrj:前面提到過該目錄存放的是Solr的Java版本的客戶端代碼。
l src/test:該目錄存放的是測試程序的源代碼和測試文件。
l src/webapp:該目錄存放的是管理Solr的Web頁面,包括Servlet和JSP文件,其構成了前面提到的WAR文件。管理Solr的JSP頁面在web/admin目錄下面,如果你有興趣折騰Solr可以找到相應的JSP的頁面對其進行設置
1.4.2 Solr home說明
所謂的Solr home目錄實際上是一個運行的Solr實例所對應的配置和數據(Lucene索引)。在上一篇文章中我提到過在Solr的example/solr目錄就是一個Solr用做示例的默認配置home目錄。實際上example/multicore也是一個合法的Solr home目錄,只不過是用來做mult-core設置的。那麼我們來看看example/solr這個目錄裡面都有些什麼。
example/solr目錄下主要有以下一些目錄和文件:
1) bin:如果你需要對Solr進行更高級的配置,該目錄建議用來存放Solr的復制腳本。
2) conf :該目錄下麵包含了各種配置文件,下面列出了兩個最為重要的配置文件。其餘的.txt和.xml文件被這兩個文件所引用,如用來對文本進行特殊的處理。
l conf/schema.xml:該文件是索引的schema,包含了域類型的定義以及相關聯的analyzer鏈。
l conf/solrconfig.xml:該文件是Solr的主配置文件。
l conf/xslt:該目錄包含了各種XSLT文件,能將Solr的查詢響應轉換成不同的格式,如:Atom/RSS等。
3) data:包含了Lucene的二進制索引文件。
4) lib:該目錄是可選的。用來放置附加的Java JAR文件,Solr在啟動時會自動載入該目錄下的JAR文件。這就使得用戶可以對Solr的發布版本(solr.war)進行擴展。如果你的擴展並不對Solr本身進行修改,那麼就可以將你的修改部署到JAR文件中放到這里。
Solr是如何找到運行所需要的home目錄的呢?
Solr首先檢查名為solr.solr.home的Java系統屬性,有幾種不同的方式來設置該Java系統屬性。一種不管你使用什麼樣的Java應用伺服器或Servlet引擎都通用的方法是在調用Java的命令行中進行設置。所以,你可以在啟動Jetty的時候顯式地指定Solr的home目錄java -Dsolr.solr.home=solr/ -jar start.jar。另一種通用的方法是使用JNDI,將home目錄綁定到java:comp/env/solr/home。並向src/webapp/web/WEB-INF/web.xml添加以下一段代碼:
1 <env-entry>
2 <env-entry-name>solr/home</env-entry-name>
3 <env-entry-value>solr/</env-entry-value>
4 <env-entry-type>java.lang.String</env-entry-type>
5 </env-entry>
實際上這段XML在web.xml文件中已經存在,你只需要把原來注釋掉的xml取消注釋,添加你所要指向的home目錄即可。因為修改了web.xml文件,所以你需要運行antdist-war來重新打包之後再部署WAR文件。
最後,如果Solr的home目錄既沒有通過Java系統屬性指定也沒有通過JNDI指定,那麼他將默認指向solr/。
在產品環境中,我們必須設置Solr的home目錄而不是讓其默認指向solr/。而且應該使用絕對路徑,而不是相對路徑,因為你有可能從不同的目錄下面啟動應用伺服器。
註:Jetty 是一個開源的servlet容器,它為基於Java的web內容,例如JSP和servlet提供運行環境。Jetty是使用Java語言編寫的,它的API以一組JAR包的形式發布。開發人員可以將Jetty容器實例化成一個對象,可以迅速為一些獨立運行(stand-alone)的Java應用提供網路和web連接。
我們先從使用者的角度出發,最先看到的當然是servlet,因為Solr本身是個獨立的網路應用程序,需要在Servlet容器中運行來提供服務,所以servlet是用戶接觸的最外層。我們看看org.apache.solr.servlet包。這個包很簡單,只有兩個類:SolrServlet和SolrUpdateServlet.我們很容易從類名中猜出這兩個類的用途。
SolrServlet類繼承HttpServlet類,只有四個方法:
· init()
· destroy()
· doGet()
· doPost()
SolrServlet類中除了普通的Java類對象(包括Servlet相關的)外,有四個Solr本身的類,還有一個Solr本身的異常。其中兩個類和一個異常屬於org.apache.solr.core包,兩個類屬於org.apache.solr.request包。屬於core包的有:
· Config:
· SolrCore:
屬於request包的有:
· SolrQueryResponse:
· QueryResponseWriter:
分析一下這個SolrServlet類。首先servlet會調用init()方法進行初始化:通過Context查找java:comp/env/solr/home來確定Solr的主目錄(home),接著調用Config.setInstanceDir(home)方法設置這個實例的目錄。然後通過SolrCore.getSolrCore()來獲得一個SolrCore實例。destroy()方法將會在Servlet對象銷毀時調用,僅僅調用core.close()關閉SolrCore實例。
當用戶請求進來時doPost()簡單地將任務交給doGet()完成,主要的任務由doGet()完成。分析一下doGet()方法:
1) 使用SolrCore和doGet()參數request生成一個SolrServletRequest對象(注意:這個SolrServletRequest類不是公開類,位於org.apache.solr.servlet包中,繼承了SolrQueryRequestBase類,僅僅接受SolrCore和HttpServletRequest對象作為參數)
2) 然後SolrCore執行execute()方法(參數為SolrServletRequest和SolrQueryResponse)
由此可見,真正的處理核心是SolrCore的execute方法
Ⅸ Java程序員,最常用的20%技術有哪些
兩個月,這讓我想到了我當年第一份工作,也是兩個月從零學JAVA。當時就買了3本書,強啃了6周。
記住一點,你要抓重點,你只要讓人家知道,你足夠初級開發就可以了,學了長長一個列表,個個不精,被面試官隨便問起來,就糟了。倒不如抓住最基本的,反正你就是初級人員,只懂最基本的,是最正常的情況。
首先,學會一個J2EE伺服器,tomcat (Nginx或者httpd等web服務),學會的標準是,會下載,能啟動,知道什麼文件部署在什麼地方,能看到啟動畫面,能知道最直接,最關鍵的配置文件名字和位置。你要了解下其他的伺服器的名字,就足夠了。有人叫你去學weblogic?那是坑你,2個月weblogic,你最多也只能懂十分之一。太重。
其次,學一個框架,以前SSH,現在SSM,這些都多餘,你就只看spring MVC,因為所有的mvc框架都類似,你只要堅持你了解MVC,其他的我覺得是容易借鑒類推的,H和M,你就直接說,我沒有項目經驗,我是沒有實際接觸過的,我只了解一點點原理,這個不要花時間,最後去看幾眼文檔就可以了。spring MVC,就這么簡單,一個就行。
然後是資料庫,別趕時髦搞nosql,老老實實關系型,mysql就很好,坑淺應用多,最近連集群支持的都很好了,你只要強調一點,資料庫,你不是DBA,你還不懂如何調優,如何調執行計劃,你只懂增刪改查,所以你要學的就是T-SQL,標準是你能手寫帶條件的增刪改查,會復雜語句更好,稍微了解下sql效率方面的問題,為了面試也是可以。MSSQL在國內被鄙視的不行,如果有人叫你弄oracle,那又是太裝逼,我手下一票的5年程序員,其中有超過一半連oracle的AWR都不會讀,有的連數據字典都不知道。
IDE不多談,你總逃不過eclipse和幾個大廠的東西。要用簡單易用的,別花太多時間在這個上面。
設計模式你要稍微看一下,了解什麼是設計模式,你大可以老實說,你根本剛入行,只是粗通工廠模式和單粒,其他的需要在工作中學習,這樣既不會顯得完全不懂,也不會出什麼紕漏。
程序方面,jdbc需要了解下,相關的有連接字的寫法,如何准備和獲取結果,什麼是resultset這類東西,當然,資料庫連接的關閉和釋放也是需要的。
類和抽象類和介面的關系搞清楚,繼承和實現搞清楚,重載重寫搞清楚這些都是基本概念。
EJB現在不太用了,稍微了解下,你可以用spring所以不用手寫EJB了。spring除了MVC以外,還有很多項目,DAO可以看一下,比較初級。
由於java主要是B/S結構,無論是集成還是自己的前後端,你都要看一下http,整個http的生命周期是什麼?存在哪些步驟和不同的application負責哪個階段,相關的有幾個request和response實體,包含什麼是session了解下。
業務邏輯的話,上手仔細寫幾個例子就好了
前段你不需要了解太多,JSP JS就足夠了,你是程序員,不是前端的美工,不用去了解太多。jsp上有個容易忽視的基礎點:tag到底是什麼如何處理。jsp的生命周期這些也最好看一下。
基礎的devops稍微了解下, git的代表,github可以注冊一個賬號,搞清楚本地repo和遠程repo之間的關系即可。SVN更為簡單一點。
Maven也要學習一下,主要是pom文件的幾個主要的部分,尤其是depedency。
code smells方面手寫萬把行代碼。自己有個感覺,不用去刻意背javadoc。
去面試吧,祝你好運!