Spring 教程
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。
为什么要学习 Spring ?
现在大部分Java EE 开发都会应用到 spring 框架,很多企业项目都会集成spring 框架, 没有100%,也有99%,可想而知 spring 框架的重要性!因此学java,就必须要会用 spring 框架!
为什么 Spring 应用如此广泛?
Spring 最主要的核心要点
-
IoC
IoC 即控制反转,而依赖注入就是IoC的一个具体实现。那什么是依赖注入呢? 在没有用到 Spring 框架之前,假设有类A, 类B,它们之间相互引用,我们一般叫循环引用, 它们要初始化时,必须要先new出来,再通过 方法相互设置对方对象,而这个过程是一个麻烦的过程 ,也容易出错; spring 正是解决这样的问题,它帮我们 new, 还帮我们初始化内部变量! 也就是spring 为我们做了 bean 的初始化(一定要),并且把内部的成员也会初始化(只要配置了)!
-
面向切面编程(AOP)
Spring 框架的一个关键组件是面向切面的程序设计(AOP)框架。 一个程序中跨越多个点的功能被称为横切关注点,这些横切关注点在概念上独立于应用程序的业务逻辑。 有各种各样常见的很好的关于方面的例子,比如日志记录、声明性事务、安全性,和缓存等等。 AOP好在哪里呢? 它最大的好处就是你可以通过AOP实现,在不改源码的代码添加自己的逻辑,是不是很厉害呢!
Spring 集成了哪些框架
-
Spring data 框架
- spring data jdbc(优化了事务的应用,一句话用了就爱了)
- spring data jpa
- spring data mongodb
- spring data redis
-
Spring cloud 微服务框架(RPC调用)
- 与 alibaba dubbo 的整合
-
Spring AMQP 消息队列整合
- 这里推荐使用 阿里巴巴 Rocketmq
-
spring web mvc
spring 集成了框架还有很多,这里主要列出最常用的几个
有了这些框架你会发现项目开发会非常的方便,我们只关注自己的业务!而且在spring 框架上编写, 代码错误率变低了!
总之,Spring 框架是真的不错,如果有时间,我还是建议大家学看看人家的源代码,spring 是开源的哦!
spring 主要是应用了反射技术,在看源码之前,还是得先了解下 Java反射知识 ;
阿里巴巴招 java 人员,要求掌握 spring 相关技术
团队介绍: 阿里云开发者社区属于阿里云开发者关系中的一部分。开发者社区集合阿里巴巴经济体各个单元技术优势,提供分享、交流、学习、认证、工具、资源、大赛、活动、社群、榜样、创新创业等一站式服务能力,满足开发者全生命周期成长需求。了解社区:https://developer.aliyun.com/
岗位描述:
- 深入挖掘、理解业务需求,能够主导业务及系统整合类项目的系统分析、设计工作,编写技术实现方案并进行需求任务分解,进行核心代码编写、解决疑难问题,并协调相关人员进行系统实现,高质量按时交付。
- 能提供架构、性能优化的解决方案,并主导平台和产品的快速迭代和优化。
- 能对现存或未来系统进行宏观的思考,有架构性思维,可快速适应公司技术栈,研究公司技术生态环境并进行对接、复用,用于快速实现业务目标,并规划形成统一的框架、平台或组件的优先。
- 针对外包人员可以进行有效技术指导,在完成目标中进行成长。
岗位要求:
- 精通Web开发,及全流程所涉及的细节。在公司担任过架构师或核心技术骨干,有主导过一定规模的系统设计、实现及核心代码开发经验。
- Java基础扎实,熟悉IO、多线程、缓存等编程经验,熟悉JVM原理;
- 熟悉Java 常用的开发框架,如Spring、SpringMVC、MyBatis、SpringBoot等;熟悉Spring原理;
- 熟悉常见的中间件、分布式解决方案及其原理;具备一定的架构设计和系统优化经验;
- 精通常用的存储,如memcache、redis、mongodb、mysql等;能做大数据存储、高性能访问的技术方案;
- 有一定的算法基础;
- 有较好的逻辑思维能力、抽象概括能力、快速学习能力; 有较好的沟通和团队协作能力; 有技术热情,具备较强的责任心和自驱力。
- 具有技术型社区开发经验的优先;熟悉阿里云云产品,基于阿里云云产品有过项目开发经验的优先;
百度招 java 开发人员,要求掌握 spring 相关技术
工作职责
- 负责百度CRM业务系统、基础平台、中间件、通用业务服务的设计、研发落地
- 持续改进系统架构、核心技术等,提升系统在可扩展、高可用、可运维等方向的能力
- 参与部门技术架构相关的规范、标准的制定,技术难点问题攻关
任职要求
- 2年以上Java开发经验,对多线程、高并发、IO、反射、JVM调优等有较好掌握
- 掌握Spring MVC、Spring Boot、MyBatis、Hibernate等主流开发框架
- 掌握Spring Cloud、Dubbo、GRPC等服务治理框架/体系之一
- 熟悉MySQL、NoSQL DB 具有一定DB性能优化经验
- 了解瀑布、敏捷等软件工程方法,具有敏捷开发的项目实践经验
- 具有大规模系统分析、分布式系统架构、微服务架构实践经验者优先
- 逻辑思维缜密、工作细致有耐心、沟通良好、善于分析和解决问题、良好的自我管理能力
- 务实、坦诚、求知欲强、良好的时间和流程意识本科及以上学历
从上面我们可以看到 spring 框架是得到了各大公司的认可,如果不学Spring,简历都是被过虑的!
所以你学不学 spring ?