1、什么是Spring Framework?
Spring Framework.png
上图就是Spring Framework,很多时候,我们可能只用到其中的几个模块,下面就浅析一下上图各模块的作用:
Core Container:容器包含了spring-beans,spring-core,spring-context,spring-context-support,spring-expression这五个模块,包含IoC、DI核心特性。
AOP & Instrumentation:AOP提供面向切面编程实现,单独的spring-aspects模块提供与AspectJ框架的集成。
Messaging:Spring 4中新添加的模块,为集成messaging api和消息协议提供支持。同样也提供了一些映射消息到方法的注解,类似spring mvc注解。
Data Access/Integration:为数据访问层提供支持,包含JDBC, ORM,OXM, JMS 和 Transaction 模块。
Web:包含spring-web,spring-webmvc, spring-websocket,和 spring-webmvc-portlet模块,主要为Web开发提供支持。
Test:使用JUnit或者TestNG为Spring各个组件提供单元测试与集成测试。
推荐使用 JDK1.8+.png所以,如果需要使用Spring Framework,JDK最好推荐在1.8+以上。另外,要使用Spring Framework,一般需要 Maven或者Gradle管理依赖:
<!-- 使用Maven管理依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId> spring-context</artifactId>
<version>5.1.0.BUILD-SNAPSHOT</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
//使用Gradle管理依赖
dependencies {
compile 'org.springframework: spring-context:5.1.0.BUILD-SNAPSHOT'
}repositories {
maven {
url 'https://repo.spring.io/libs-snapshot'
}
}
PS:推荐使用Maven,这是最常用的,如今各大公司使用Gradle 还不是很多,因为Eclipse 对Gradle 的支持不像Intellij Idea 那么完美。
未来的趋势==Spring Boot+ SpringWeb Flux + Spring Cloud
Spring MVC基于servlet API构建,并使用一个同步阻塞I / O体系结构和一个单线程请求线程模型的Web 框架。
Spring WebFlux是一个非阻塞的Web框架,从该组建立起,利用多核,下一代处理器和大量并发连接。
总结:
Spring MVC 是基于Servlet API 构建的同步阻塞式I/O 的Web 框架。
Spring WebFlux 是一种更优秀的非阻塞式Web框架,而且能更好处理大量并发连接。
网友评论