SPRING REFERENCE

Spring概念:

    Spring在不同的背景下意味着不同的东西。它可以用来引用Spring Framework项目本身,它就是一切开始的地方。随着时间的推移,其他Spring项目已经构建在Spring Framework之上。大多数情况下,当人们说“春天”时,他们就意味着整个项目家族。本参考文档侧重于基础:Spring Framework本身。

    Spring框架分为几个模块。应用程序可以选择所需的模块。核心是核心容器的模块,包括配置模型和依赖注入机制。除此之外,Spring Framework还为不同的应用程序体系结构提供了基础支持,包括消息传递,事务数据和持久性以及Web。它还包括基于Servlet的Spring MVC Web框架,以及Spring WebFlux响应式Web框架。

    关于模块的说明:Spring的框架jar允许部署到JDK 9的模块路径(“Jigsaw”)。为了在支持Jigsaw的应用程序中使用,Spring Framework 5 jar带有“Automatic-Module-Name”清单条目,它们定义了独立于jar工件的稳定语言级模块名称(“spring.core”,“spring.context”等)名称(罐子使用相同的命名模式,而不是“。”,例如“spring-core”和“spring-context”)。当然,Spring的框架jar在JDK 8和9+上的类路径上都能正常工作。

Spring的历史和Spring框架:

    Spring于2003年成立,是对早期J2EE规范复杂性的回应 。虽然有些人认为Java EE和Spring处于竞争中,但Spring实际上是对Java EE的补充。Spring编程模型不包含Java EE平台规范; 相反,它集成了EE保护伞中精心挑选的个别规格:

  • Servlet API

  • WebSocket API

  • 并发实用程序

  • JSON绑定API

  • Bean验证

  • JPA

  • JMS

  • 以及必要时用于事务协调的JTA / JCA设置。

    Spring Framework还支持依赖注入和Common Annotations规范,应用程序开发人员可以选择使用这些规范,而不是Spring Framework提供的Spring特定机制。

    从Spring Framework 5.0开始,Spring至少需要Java EE 7级别(例如Servlet 3.1 +,JPA 2.1+) - 同时在Java EE 8级别提供与新API的开箱即用集成(例如,Servlet 4.0,JSON绑定API)在运行时遇到。这使Spring与Tomcat 8和9,WebSphere 9和JBoss EAP 7完全兼容。

    随着时间的推移,Java EE在应用程序开发中的作用也在不断发展。在Java EE和Spring的早期,创建了应用程序以部署到应用程序服务器。今天,在Spring Boot的帮助下,应用程序以devops和云友好的方式创建,Servlet容器嵌入并且变得微不足道。从Spring Framework 5开始,WebFlux应用程序甚至不直接使用Servlet API,并且可以在不是Servlet容器的服务器(例如Netty)上运行。

    Spring继续创新并不断发展。除了Spring Framework之外,还有其他项目,例如Spring Boot,Spring Security,Spring Data,Spring Cloud,Spring Batch等。重要的是要记住每个项目都有自己的源代码存储库,问题跟踪器和发布节奏。有关Spring项目的完整列表,请参见spring.io/projects

spring优点:                                                        

1. 方便解耦,简化开发  (高内聚低耦合)

  • Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理

  • spring工厂是用于生成bean   (静态工厂模式)

面试题:spring的IoC(控制反转)底层用到什么设计模式?--  静态工厂模式

2.  AOP编程的支持

  • Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

  • 打印日志

  • 面试题: aop的底层运用到什么设计模式? --  动态代理

3.  声明式事务的支持   (AOP  动态代理)

  • 只需要通过配置就可以完成对事务的管理,而无需手动编程

4.  方便程序的测试

  • Spring对Junit4支持,可以通过注解方便的测试Spring程序

  • @RunWith(SpringJUnit4ClassRunner.class)

  • @ContextConfiguration("applicationContext.xml")

5. 方便集成各种优秀框架 *****

  • Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz(任务调度)等)的直接支持

  • Redis

  • Solr  搜索引擎

  • 消息队列 ActiveMQ

  • ……

6. 降低JavaEE API的使用难度  EJB

  • Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

posted on 2019-04-07 15:49  太白云生  阅读(167)  评论(0编辑  收藏  举报