-
1 # 幣市鏈圈
-
2 # 尹洪亮Kevin
謝邀!根據你面試的職位等級不同,面試的內容當然會不同。spring、springmvc、mybatis這三大基礎框架必須學和掌握,springboot、dubbo、springcloud、Spring家族其他套件、apache相關套件進階
-
3 # IT實戰聯盟
問題:平時主要使用什麼Java開發框架
回答:基礎框架是Spring Boot,在工作過程中使用過Spring Cloud 和 Dubbo來實現微服務架構。
Spring Cloud 和 Dubbo 也是目前主流的微服務實現架構,現在公司的中臺就是採用的Dubbo,但是也是遇到許多問題。接下來會慢慢重構掉,有考慮採用Spring Cloud來實現。
-
4 # 程式設計仔日常
我主要用的框架有這三個:Spring/STRUCTS/Hibernate。
第一:SpringSpring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務物件的一致方法並且鼓勵了注入對介面程式設計而不是對類程式設計的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 Spring提供了的資料訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的資料訪問架構還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了的事務管理抽象,它能夠在各種底層事務管理技術,例如JTA或者JDBC事務提供一個一致的程式設計模型。Spring提供了一個用標準Java語言編寫的AOP框架,它給POJOs提供了宣告式的事務管理和其他企業事務--如果你需要--還能實現你自己的aspects。這個框架足夠強大,使得應用程式能夠拋開EJB的複雜性,同時享受著和傳統EJB相關的關鍵服務。Spring還提供了可以和IoC容器整合的強大而靈活的MVC Web框架。
第二:STRUCTSStruts是一個基於Sun J2EE平臺的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標籤和資訊資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。
第三:HibernateHibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式實用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。對映很簡單呀,就是頁面的對映呀,多做點練習就會了。
應該怎麼學Java程式設計?Java的學習主要包括:語法基礎、面向物件思想。學習任何一門語言語法都是必須的,因為Java的接近自然語言,也是一種相對比較容易學的語言。同時面向物件程式設計更是其核心思想,要理解其實只要記住一句話就行了,那就是:一切皆是物件。
中級的IO流、多執行緒、反射及註解等。IO流程、多執行緒等是相對比較高階一點,例如我們可以讀取一個Excel檔案、將一個檔案分離,做一個時鐘、使用多個執行緒傳送郵件等等很多有意思的事。另外反射及註解更是後面流行框架SSH等的基礎,在使用中你便會慢慢感受到它的無窮魅力。
現在來說Java最流行的應用還是Web開發。像HTML、CSS、Javascript等都是基礎的知識,另外作為開發人員對目對於結構化的資料,我們常用的還是像Oracle、Mysql和PostgreSQL之類的關係型資料庫。同時針對資料庫程式設計還是PL/SQL需要學習。使用Java訪問資料庫的話還有JDBC。
作為Java開發,CoreJava是核心,而作為JavaWeb開發,我認為Servlet才是核心。Servlet是伺服器端的Java應用程式,但是與普通的Java應用程式不同的是,它是由web伺服器來載入啟動,即我們常說的Servlet,如Tomcat便是servlet容器。另外談到J2EE開發,這裡有一個重要的模型不得不提一下,很多人其實已經想到了,那便是MVC(模型-檢視-控制器)模型。在傳統的web開發中,往往是JavaBean充當模型、JSP做檢視而Servlet作為控制器。
說到框架,其實已經提到了著名的MVC模型,SSH(Struts+Spring+Hibernate)就是一個非常好的實現。對於每一個框架的作用,我想就不用多說了,畢竟這裡並不是想寫一本教程。另外還有工作流開發的JBPM,搜尋引擎Lucence及使系統對外提供介面的webservice應用元件等都是應該要掌握的。
Java應該怎麼學?明確的學習目的。安守本分做好一名士兵,還是有所追求想做軍官?這就是目標。學習也要有目的,盲目的學習必然 會使我們手忙腳亂,效率低下;有目的的學習才能使我們這隻漂泊在知識海洋上的小船看到燈塔。總之,學好軟體開發並不是單一影響,而是多方的作用,只有相容幷包,相互協調才能把軟體開發學好。
學習方法。學習方法很重要,好的學習方法會使我們事半功倍,而不好的學習方法會使我們事倍功半,做什麼事都要注重功效。
良好的心態。興趣是最好的老師,或許你並非抱著對軟體開發極大的興趣和熱情來學習的,但興趣是最好的老師,我們可以在學習的過程中培養興趣,有良好的學習心態,不只是為學習而學習,而是為興趣而學習,為就業而學習。
良好的習慣。無論在學習上還是在生活上養成一個良好的習慣都對我們有很大的益處,生活和習慣又相輔相成,相得益彰,相互影響,相互作用。
注重理論基礎。軟體開發最好有一定的理論基礎。通其理才能更好的理解技能的精髓,才懂得融會貫通,軟體開發學習也適用於這一點,不要忽視理論課的作用,理論是為了更好的實踐。甲骨文培訓學校的教員表示:“好的培訓學校能做到讓學生即能對理論課付出較大的熱情,又能在實踐操作上表現出色。”,只有理論和實踐合理的搭配才能學好軟體開發技術。
高效的Java學習方法有這些!學java首先你要學 J2SE,它是java體系的基礎,也是重中之重。很多人往往不重視基礎,其實這是捨本逐末的做法。說這麼多就是希望大家能重視基礎,能在這條路上走的更遠。
學j2se有下面幾個目標:
1、你要能真正理解面向物件的優勢,理解為什麼不是面向過程。 2、掌握java語法基礎。包括異常處理、多執行緒、網路程式設計、GUI程式設計等 3、如果你對swing不感興趣,可以跳過它。這一階段結束後,你需要能獨立寫一個小遊戲,比如坦克大戰、俄羅斯方塊、貪吃蛇等。
當你完成J2SE的學習之後,你就要開始學習java web了。
你需要掌握web基礎知識:html、css、javascript、ajax、jQuery。別怕,這些技術看起來很多,其實也沒要你精通它們,只是要你能在用到它們的時候,能透過快速查閱相關文件,能正確使用它們。如果這一階段順利的話,你可能還用不到一個月。學習servlet、jsp、jdbc。這些是javaweb的基礎,如果你自學有難度,可以在網上下載一些相關影片,幫助理解,降低學習難度曲線。
當你完成上一階段的學習後,你就可以進入J2EE的階段了。
這一階段,你可能會見到很多各種各樣的框架,會讓你眼花繚亂,頭暈目眩。不過別擔心,你只需要學習三個就足夠了。它們是struts2、hibernate、spring。這些框架為搭建具有可伸縮性、靈活性、易維護性的商務系統提供了良好的機制。首先你需要學習三個框架的基本配置和使用,直到你能熟練搭建一個ssh專案。如果學有餘力,你可以深入學習這些框架的設計模式。
-
5 # 千鋒武漢
各種各樣的程式語言不斷崛起,但唯有Java是牢牢佔據著老大的位置,目前幾乎90%以上的大中型網際網路應用系統在伺服器端開發首選Java。Java作為老牌程式語言,應用廣泛,人才需求大。
今天分享一些Java工程師必備的框架。
如今Java中三大框架有兩套:SSM:Spring+SpringMVC+Mybatis;SSH:Spring+Struts+Hibernate。
Spring是一個開源框架,是為了解決企業應用程式開發複雜性而建立的。框架的主要優勢之一就是其分層架構,分層架構允許您選擇使用哪一個元件,同時為 J2EE 應用程式開發提供整合的框架。
Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動型別的輕量級Web框架,目的是幫助我們簡化開發。
Mybatis是一個持久層的框架,是對JDBC操作資料庫的封裝,使開發者只需要關注業務本身,不需要花費精力去處理載入驅動、建立資料庫連線物件、建立statement語句物件、引數設定、結果集處理等一系列繁雜的過程程式碼。
Struts是最早的Java開源框架之一,是MVC設計模式的一個優秀實現。 Struts定義了通用的Controller(控制器),透過配置檔案(通常是 Struts -config.xml)、隔離Model(模型)和View(檢視),以Action的概念以對使用者請求進行了封裝,使程式碼更加清晰易讀。
Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。
SSH框架是最先的用於Web開發的框架,再到後來出現了SSM框架。Hibernate是重量型框架,入手難,Mybatis是輕量型框架,入手容易,針對高階查詢,Mybatis需要手動編寫SQL語句以及ResultMap。而Hibernate有良好的對映機制,開發者無需關心SQL的生成與結果對映,可以更專注於業務流程。
當然,除了以上我分享的框架,還有其他一些好用的框架,就不一一列舉了。
-
6 # 會點程式碼的大叔
就拿我們專案來舉例說一說吧。
我們的專案是一個純後臺服務的專案,也就是沒有前端頁面,只對外提供服務;專案是是基於 Spring Boot 來做的,引入 spring-boot-starter-web,直接對外暴露介面,報文使用的 JSON,有極個別的介面是從老系統遷移過來的,為了讓呼叫方儘可能地稍作修改,所以保持了 XML 的報文;在正式的生產環境中,也是使用的內建的 Tomcat;集成了 Swagger,來做介面的文件線上自動生成。
ORM 框架選擇的是 MyBatis,由於專案中大部分的查詢都做到了單表查詢,而且查詢條件比較固定,所以直接使用註解做的 SQL 語句繫結。
因為專案不僅使用了關係型資料庫,而更多的資料是加工關聯後儲存到了 MongoDB 中,所以專案也用到了 Spring Data MongoDB,我們的 MongoDB 是做了副本集的部署,使用 Spring Data MongoDB,只需要做簡單的配置,就可以完成對多臺 MongoDB 的訪問,如果其中一臺 MongoDB 掛了,對服務也是沒有影響的,所以我們做 MongoDB 擴容的時候是可以線上做的(MongoDB 擴記憶體和 CPU 的時候需要停機)。
和部分系統的互動使用到了 RabbitMQ,而 Spring Boot 只要引入 spring-boot-starter-amqp,其實就可以很方便地完成和 RabbitMQ 的整合;生產者和消費者都非常方便。
因為是純介面的服務,為了減輕資料庫的壓力,所以我們根據業務場景,將一些介面的結果直接快取到 Redis 中(資料變化不頻繁,並且業務場景的實時性要求不是很高)。在整合 Redis 的時候,我們前後試了兩種方式:
Spring Boot 專案,直接使用 @Cacheable 註解就可以完成和 Redis 最簡單的整合,但是後來因為設定快取的超時時間不夠靈活,我們後來改成了第二種方案;
使用 RedisTemplate,可以完成對 Redis 的絕大部分操作。
-
7 # 胖哥雜談之
作為一個後端開發人員,胖哥用過很多開發語音,從最初的PHP,到Python,再到現在的Java,胖哥都是根據公司安排和專案需要不斷更新自己的開發技能。說出來都是淚啊,為了專案都是臨危受命,逼著自己短時間快速上手寫程式碼,不過正是這樣才發現自己的潛力,回想起來也是滿滿的成就感。
那麼近幾年胖哥公司一直在用Java架構來開發,不過並沒有使用最流行的Spring boot,還是用的SpringMVC,版本也不是最新版,還是4.2.5,主要是為了穩定。
至於後續最佳化升級計劃,其實一直都有,每次提到升級領導都說有時間就搞,但好像一直沒有時間,再也不相信領導那張嘴了。
胖哥去年剛主導公司把一部分專案升級到JDK8,SpringMVC升級到4.2.5,是的,你沒看錯,公司專案之前更老,用的是JDK7+SpringMVC3.2.8+Tomcat7,主要還是領導不重視技術,只要生產系統穩定不出問題,就沒有動力升級最佳化。
所以現在公司主要的技術棧都相對比較落後,具體如下:
前端:H5、Wap、Android、ios
後端:maven3.5.2、JDK8、SpringMVC4.2.5
中介軟體:dubbo2.5、rocketmq、ELK
儲存:Redis2.6、Mysql5.7、Hbase
容器:tomcat7、jetty、nginx
所以胖哥還有很多的工作要做,主要是跟領導溝通好升級的時機,而且也要培養大家的技術熱情,這樣才能更容易更快的進行技術升級。
回覆列表
Java框架一直以來都是面試必備的知識點,而掌握Java框架,不管在成熟的大公司,快速發展的公司,還是創業階段的公司,都能對當前正在開發中的系統有整體的認知,從而更好的熟悉和學習技術,這裡我把常見的一些框架給您整理一下。
Spring框架,這個只要想從事java開發或正在從事java開發的,沒有人不知道吧?沒有人不在用吧?一般應該是天天用才是。SpringIoc和SpringAOP是Spring的兩大核心功能,讓java程式設計師解放了,各種整合框架,輕鬆搞定,把重心放到業務實現上去。
hibernate框架,也是我最喜歡的框架之一。是開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用。
可以說java官方的jpa,就是適應hibernate的超好用,而設計的。如果沒有hibernate,可以不一定有orm的出現。
MyBatis,不多說, 也是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資訊,將介面和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java物件)對映成資料庫中的記錄。
Apache Shiro是一個強大且易用的Java安全框架,執行身份驗證、授權、密碼和會話管理。使用Shiro的易於理解的API,您可以快速、輕鬆地獲得任何應用程式,從最小的移動應用程式到最大的網路和企業應用程式。
Activiti專案是一項新的基於Apache許可的開源BPM平臺,從基礎開始構建,旨在提供支援新的BPMN 2.0標準,包括支援物件管理組(OMG),面對新技術的機遇,諸如互操作性和雲架構,提供技術實現。
隨著DevOps的流行,Spring Cloud是一系列框架的有序集合,當前最為流行。這裡涉及到好多框架,我就不一一列出來了,大家可以自己去了解。
總之,做為一個Java開發者,熟練掌握並應用20種以上框架應該不叫算多,Java的生態太強大,所有大家要好好學習呀。