Spring Framework 5.3文档学习(一)
Spring Framework 5.3.0 文档学习,纯粹个人理解,欢迎各位大佬指正
Overview
这部分主要是介绍Spring多么nb之类的,就不废话多说了。
有用的信息:Spring Framework 5.1需要JDK8以上的支持。
1.What We Mean by “Spring”
啥是Spring?Spring不就是一个项目嘛?
这么理解就有问题了。文档里说了,这要是搁以前,Spring是可以用来特指Spring Framework这个项目的,不过现在不行了。现在俺们公司有一堆“Spring”开头命名的基于Spring Framework做的扩展项目,现在说“Spring”,指的应该是俺们做的这一堆项目。
那么关于Spring Framework这个项目呢,是分了很多模块的。最重要的模块就是core container(核心容器),包括configuration model(配置模型?这块没明白是指的是哪部分)和dependency injection mechanism(常说的依赖注入机制)。当然了,Spring Framework肯定不止这么点东西,它还可以根据项目体系结构的不同提供各种支持,包括messaging(消息)、transactional(事务)、persistence(持久化)、web(就是web也不知道咋解释)、基于servlet的Spring MVC的web框架、基于Spring WebFlux reactive的web框架(Spring Framework 5新增的非阻塞web框架)。这么多模块,项目里需要啥就加啥。
最后一段是说jdk9有个新特性叫jigsaw(模块化),Spring Framework是支持这个特性的。然后介绍了一堆模块命名之类的内容。目前工作用不到jdk9,这个jigsaw也没太理解是啥意思,可能是跟maven的功能类似吧。
2. History of Spring and the Spring Framework
Spring是作为J2EE早期的复杂规范的响应出现的,它与Java EE并不冲突,而是相互补充。Spring集成了Java EE的一些规范,如servlet API、WebSocket API、Concurrency Utilities(并发)、JSON Binding API(Json绑定)、Bean Validation(java bean 校验)、JPA(持久化)、JMS(消息服务)、Dependency Injection 、Common Annotations。
到了Spring Framework 5.0,需要最低javaEE7规范的支持,同时也很好的支持了JavaEE8、tomcat8、tomcat9、WebSphere9和JBoss EAP 7。
过去使用JavaEE和Spring做的项目要部署到应用服务器中。现在,使用了内嵌Sevelet API 的SpringBoot的项目只需要做出极少的改变就可以做到devop(开发运维一体化)和cloud-friendly(不知道咋翻译,意会)。到了Spring Framework 5.0,一个WebFlux项目甚至不直接使用Servlet ApI就可以再非Servlet容器(如Netty)上运行。
Spring会持续更新和发展。除了Spring Framework,还有很多其他项目如pring Boot, Spring Security, Spring Data, Spring Cloud, Spring Batch等。
3. Design Philosophy
当学习一个框架的时候,不仅要知道它是干什么的,更要知道它遵循了哪些原则。
Spring Framework 的设计思想:
- 在每个层级都提供选择:spring 允许你尽可能推迟程序的设计。例如,你可以通过配置来修改持久化的提供者,而不用修改代码。对其他的一些基础的第三方提供的接口也可以通过配置文件来操作。
- 接纳不同的观点:Spring包含很多灵活的拓展,不会固化解决事情的方法。它对很多持有不同观点的应用都提供了支持。
- 保持强大的向后兼容性:Spring在更新版本时一直都尽量控制影响较大的改动。Spring在选择JDK和第三方库的支持上一直都很小心,以便基于Spring的应用进行维护。
- 关注接口设计:Spring团队在设计API时花费了大量的时间和精力,确保API简单易懂,而且可以在很多版本、很长时间之内经受得住考验。
- 规定了较高的代码质量标准:Spring Framework对javadoc注释的易读性、时效性、准确性非常重视。它也是可以说是为数不多的代码结构清晰、没有包之间循环引用的项目之一。
4. Feedback and Contributions
自己有问题问StackOverflow,发现是Spring Framework的问题上githut issues提。
如果你nb,也可以直接往github上提代码。
5. Getting Started
别废话了,用spring-boot开始搞吧。