给Android工程师的Java后台学习建议

一、背景

了解下有利于消化

这里快速说下 Java Web 开发的背景,作为Android开发,在学习后台开发上无疑用 Java 做敲门砖是成本较低的选择,Java Web 与 Android 之间的相互转岗也屡见不鲜。

起初的 Java Web 开发并没有明确的前后端之分,如今也依旧存在前后端不分离的项目,只是随着时间发展,从项目管理维护、开发职责和效率的考虑下,慢慢的有了前后端职责之分。

对于Android开发而言,后端通俗而言就是写restful接口的。

Java Web 大致发展历程如下图,从 Struts2 开始的 MVC 模式,再到 Spring的控制反转(IOC)和切面编程(AOP),再到 SpringBoot 全家桶,其门槛也在逐步降低。对于这个历程感兴趣的可以自行了解下,后续主要推崇Spring 大家庭。

事实上对于 Android 开发而言, Spring 并不会是一个陌生的概念,其核心理念之一 IOC (也称依赖注入) 和使用逻辑与 Dagger 如出一辙,所以在入门时《Spring实战(第4版)》这本书相信会 Android 开发者是不错的选择。

二、框架选择

Spring Boot 全家桶快到碗里来

Java Web 的世界同 Android 一样存在各类框架,也许一些前辈们都建议不要从学习框架开始,但是我个人而言更习惯从实用性切入:选择一个主流框架学习,挑一个开源项目对照实践,之后完成一个小项目躺坑,最后才开始深入去学习感兴趣的点。毕竟万事开头难,如果一开始太过枯燥,难免让人“把持不住”。

在 Spring 断断续续的学习中,主要接触了 SSH (曾经) 和 SSM (如今) 两种组合开发框架,至于怎么选择,你懂的。

SSH:Struts2 做控制器(controller) + Spring 管理组件 + Hibernate 负责数据库。
SSM: SpringMVC 做控制器(controller) + Spring 管理组件 + MyBatis 负责数据库。

作为 Android 开发者,如果你使用过或了解过 Dagger ,那么理解和使用 Spring 并不难。通过各类注解如 @Contorller、@Service、@Configuration 等去标明类的用途,通过 @Autowired 去注入使用的方式,相信会让你倍感亲切。

如果说 Spring 是类似 Dagger 的注入和管理实体的容器框架,那么SpringMVC 就是基于 Spring 功能之上添加的 Web 框架。

对于 Android 开发而言,MVC 肯定是不会陌生的,实际上后台开发人员通常就是写个Controller 提供个 Model 给你。而 Hibernate 和 MyBatis 都是持久层框架,属于能方便使用如 MySql 等数据库的 ORM 框架。

如果说 Spring 和 SpringMVC 是 Android 开发者较友好的选择,那么 Spring Boot 则是你的“绿色通道”。 Spring Boot 又称之为全家桶,因为它集齐了各类常用的开发框架,同时降低了 Spring 开发的门槛,更是简化了各种配置过程,而且 Jetbrains 大家庭支持它!

所以现阶段而言,个人认为 Spring、SpringMVC、SpringBoot 是 Android 开发者学习入门 Java Web 的不错选择。

先理解 Spring 设计模式,再学习 SpringMVC Service/Controller 等的开发,最后使用 SpringBoot 快速搭建 Web 项目。 当前这只是一个开始,后续的路诸如还有:

  • 数据库的学习:mysql、mongodb

  • 持久层框架的学习:hibernate 、mybatis

  • 缓存框架的学习:ehcache、redis

  • 安全权限框架的学习:shiro、spring security

  • 分布式框架的学习:dubbo、spring cloud

  • 代理服务:Nginx

毕竟学无止境,有一技旁身,至少不至于孤陋寡闻。

三、开发工具选择

“不用IDE,文本编辑器”一直是大神的标配,但是“懒惰”使我进步,所以一款好的 IDE 可以让人更舒服的过度到入门。

Android 开发在 IDE 在选择上其实也很有优势,因为 Android Studio 本来就是基于 Jetbrains 的 IDEA Commutity Edition 二次开发的。

都是一家子,选择 Jetbrains 全家桶中的 IntelliJ IDEA 作为开发工具,对于 Android 开发者而言,从快捷键、界面UI、调试方式等都可以实现“无缝切换”和降低了学习成本。至于 eclipse 么,反正它已经没有出现在我视野中很久很久很久。

同时,IntelliJ IDEA 对于 SpringBoot 和 Maven 的支持也同样优秀哦。

全家桶之部分Show

四、最后

本人在学习新的东西时,也经常面临一些选择的问题,特别是在想学 Web 服务开发时,经历多年的发展后台服务生态百花齐放:php、java、golang、phython、nodejs 等容易让人在临门一脚时犹豫不决。(毕竟 php 天下第一)

除开业务需求和环境限制,我个人是比较推崇低成本拓展的。万事开头难,“三过门而不入”的坚持并不是每个人都有,而能把现阶段所掌握的去衍生去其他的能力,是比较稳定的技术增值。“贪多嚼不烂”,先有深度,再有宽度,望共勉!

本文或许不是什么干货,更多是提供 Android 开发者,在学习 web 开发时的一种选择建议。有备无患,毕竟不知道何时就用上了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容