Java從95年至今通過多年發展,因爲各位前輩的不斷創新,Java的成熟性已不可置疑;同時也致使java技術琳琅滿目。那麼在學習Java前咱們應該如何選擇技術方向呢?目前,哪些技術很是流行呢?另外,小編聽到不少人說軟件是吃青春飯的,30+混很差就沒什麼發展前途了,現實真實如此嗎?針對以上問題小編從我的理解上梳理一下,意見不一樣者歡迎討論。java
小編接觸java最先是在大學期間,大學的教材通常都比較落後,像servlet、jsp,這兩種技術是j2ee裏最老的兩門技術了。從工做至今我從未使用過jsp,如今互聯網公司早已不使用。servlet你們仍是有必要認真學一下的,它是MVC框架的核心,對咱們理解MVC有很大幫助。 spring
MVC框架在大學學了Struts 2.x,如今也沒有公司在試用。現今流行的MVC框架就是SpringMVC,這個確定是要學習的,建議搞清其中的原理,對理解如今比較流行的springboot是一個很好的鋪墊。 數據庫
持久層技術Hibernate和mybatis用的較多,這就是咱們常說的SSH和SSM中的H和M。小編在畢業第一年主要用Hibernate,後來因爲新項目選型mybatis,至今一直在試用mybatis,這二者小編更偏向也mybatis,緣由以下表1
編程
對比方向 | Mybatis | Hibernate |
---|---|---|
上手難以程度 | 易 | 難 |
ORM | 半自動化 | 徹底的自動化 |
Sql配置文件 | 多 | 低 |
數據庫無關性 | 低 | 高 |
SQL靈活性 | 高 | 低 |
性能 | 高 | 低 |
適合的行業 | 互聯網 電商 | 傳統的(ERP CRM OA) |
社區活躍度 | 高 | 低 |
DB頻繁地創建、關閉鏈接,會極大的減低系統的性能,由於對於鏈接的使用成了系統性能的瓶頸。這時咱們可使用數據庫鏈接池來解決這個問題,如:c3p0、dbcp、druid和HikariCP。目前c3p0、dbcp已經被逐漸淘汰,國內目前比較流行的高性能的Druid鏈接池(阿里巴巴研發)優勢以下: 安全
對比方向 | Spring Cloud | Dubbo |
---|---|---|
服務註冊中心 | Spring Cloud Netflix Eureka | Zookeeper |
服務調用方式 | REST API | RPC |
服務網關 | Spring Cloud Netflix Zuul | 無 |
斷路器 | Spring Cloud Netflix Hystrix | 不完善 |
分佈式配置 | Spring Cloud Config | 無 |
服務跟蹤 | Spring Cloud Sleuth | 無 |
消息總線 | Spring Cloud Bus | 無 |
數據流 | Spring Cloud Stream | 無 |
批量任務 | Spring Cloud Task | 無 |