Spring框架全面教程:从入门到精通掌握Spring核心

这是文章《Spring教程 – Spring核心框架教程》的第1部分(共3部分)。

内容片段: Spring 是最广泛使用的 Java EE 框架之一。我在 Spring 教程中已经写了很多内容,这篇文章是一个汇总,可以作为一个索引,以便按顺序浏览它们。

Spring教程

所有的Spring教程都附带有示例项目,您可以从教程页面上下载。

Spring核心教程

Spring Framework基于两个设计原则——依赖注入和面向切面编程。请查看下面的教程,了解有关核心Spring概念的详细说明和实现示例。

  • Spring Framework概述:Spring Framework是一个令人惊叹的框架,本文简要介绍了Spring Framework的演变、架构、核心组件以及指导该框架开发的原则。
  • 依赖注入(DI)Java示例:本文介绍了依赖注入的基础知识,并演示了如何在简单的Java应用程序中实现DI模式。这是一个很好的起点,然后可以转向Spring依赖注入。
  • Spring依赖注入:本教程旨在提供Spring框架中依赖注入的示例,包括基于注解的配置和基于XML的配置。教程还包括JUnit测试程序,用于验证实现。
  • Spring AOP示例:本教程解释了面向切面编程(AOP)的核心概念,如切面(Aspect)、通知(Advice)、切入点(Pointcut)、连接点(Joinpoint)、AOP代理和织入(Weaving)。教程还通过简单的程序介绍了不同类型的通知。
  • Spring AOP方法分析
  • Spring IoC容器和Spring Bean示例:教程旨在通过示例程序解释Spring IoC容器和Spring Bean的核心概念。教程解释了IoC容器及其核心类以及创建ApplicationContext的不同方式。教程还介绍了Spring Bean、Spring Bean范围以及配置Spring Bean的不同方式,包括XML、注解和基于Java的示例项目。
  • Spring Bean范围:Spring Bean范围允许我们更精确地控制Bean实例的创建。
  • Spring Bean自动装配示例:Spring IoC容器通过”spring autowire”属性智能地确定要注入依赖项的Bean。本教程通过示例项目介绍了不同类型的自动装配。
  • Spring Bean生命周期:Spring Bean是任何Spring应用程序最重要的部分。Spring ApplicationContext负责初始化定义在Spring Bean配置文件中的Spring Bean。本教程介绍了在Spring Bean中提供后初始化和销毁方法的不同方式-使用InitializingBean/DisposableBean接口或init-method/destroy-method属性。Spring框架还支持使用@PostConstruct和@PreDestroy注解定义后初始化和销毁方法。这些注解是javax.annotation包的一部分。您还将了解可以使用Spring Aware接口将Servlet API对象注入Spring Bean。
  • Spring 5:Spring 5于2017年底发布。Spring 5对Spring框架进行了大规模更新。
  • Spring WebFlux:Spring WebFlux是Spring 5中引入的新模块。Spring WebFlux是向响应式编程模型迈出的第一步。
  • Spring Data JPA:Spring Data JPA是Spring Data系列的一部分。Spring Data使得创建使用新方式访问数据(如非关系型数据库、Map-Reduce框架、云服务以及先进的关系数据库支持)的基于Spring的应用程序更加容易。

Spring注解

  • Spring @Bean:Spring @Bean注解用于指定一个方法返回一个由Spring容器管理的bean。通常在配置类的方法中声明这个注解。
  • Spring @Service:Spring @Service注解是@Component注解的一种特殊化。Spring Service注解只能应用于类。它用于标记该类作为服务提供者。
  • Spring @Component:Spring Component注解用于表示一个类是组件。这意味着当使用基于注解的配置和类路径扫描时,Spring框架将自动检测这些类进行依赖注入。
  • Spring @RestController:Spring RestController注解是一个方便的注解,它本身被@Controller和@ResponseBody注解修饰。该注解应用于一个类,将其标记为请求处理器。
  • Spring @Controller:Spring Controller注解是@Component注解的一种特殊化。Spring Controller注解通常与基于注解的RequestMapping注解相结合使用,用于处理器方法。
  • Spring @Repository:Spring @Repository注解用于指示该类提供了关于对象的存储、检索、搜索、更新和删除操作的机制。
  • Spring @Configuration:Spring @Configuration注解是Spring核心框架的一部分。Spring Configuration注解表示该类具有@Bean定义方法。因此,Spring容器可以处理该类并生成用于应用程序的Spring Beans。
  • Spring @Value:Spring @Value注解用于为变量和方法参数分配默认值。我们可以使用@Value注解读取Spring环境变量和系统变量。
  • Spring @PropertySource:Spring @PropertySource注解用于向Spring环境提供属性文件。该注解通常与@Configuration类一起使用。
  • Spring @PostConstruct和@PreDestroy:当我们使用@PostConstruct注解在Spring Bean中注释一个方法时,该方法在Spring Bean初始化之后执行。当我们使用@PreDestroy注解在Spring Bean方法上注释时,该方法在从上下文中移除bean实例时调用。
  • Spring @Async:Spring @Async注解允许我们在Spring中创建异步方法。让我们在这个关于Spring框架的教程中探索@Async注解。

Spring Boot教程

  • Spring Boot组件
    • Spring Boot @SpringBootApplication, SpringApplication类:Spring Boot @SpringBootApplication注解用于标记一个配置类,该类声明了一个或多个@Bean方法,并触发自动配置和组件扫描。Spring Boot的SpringApplication类用于从Java主方法引导和启动Spring应用程序。
  • Spring Boot REST:本教程介绍如何使用Spring Boot模块创建REST Web服务。
  • Spring Boot MongoDB:学习如何在Spring Boot应用程序中使用MongoDB。
  • Spring Boot Redis缓存:本文介绍如何将Redis缓存集成到Spring Boot应用程序中。
  • Spring Boot Elasticsearch:本文介绍如何将Elasticsearch与Spring Boot应用程序集成。
  • Spring Boot Actuator端点:Spring Boot Actuator Endpoints允许我们监视和与我们的应用程序进行交互。Spring Actuator是Spring Boot的一个子模块,提供了内置的端点,我们可以为我们的应用程序启用和禁用。
  • Spring Boot Initializr Web界面
  • Spring Boot CLI示例
  • Spring Boot – 无法确定嵌入式数据库驱动程序类型为NONE
  • Spring Boot面试问题

Spring MVC教程

(内容待续)

Spring教程 – Spring核心框架教程(第2部分,共3部分)

Spring MVC教程

  1. 使用Spring工具套件的Spring MVC入门教程。Spring MVC模块帮助我们创建基于Java的Web应用程序。这是Spring MVC系列中的第一篇文章,您将学习如何使用Spring Tool Suite(STS)并使用Spring MVC框架创建一个简单的Web应用程序。
  2. 使用Maven和Eclipse IDE创建Spring MVC应用程序的示例,而无需使用Spring Tool Suite。
  3. 使用JSON的Spring RESTful Web服务示例。Spring框架提供了对Jackson JSON API的内置支持,我们可以利用它来创建一个返回JSON响应的RESTful Web服务。本教程解释了配置应用程序以返回JSON响应并实现REST API所需的所有不同部分。
  4. Spring REST支持基于XML和JSON的请求-响应消息。通过简单的配置,本教程解释了如何轻松支持这两种格式。
  5. Spring RestTemplate提供了一种方便的方法来测试RESTful Web服务。我们可以使用RestTemplate来测试基于HTTP的RESTful Web服务,但不支持HTTPS协议。
  6. Spring MVC文件上传示例。文件上传是Web应用程序的常见任务之一,因此Spring通过集成Apache Commons FileUpload API来提供内置的文件上传支持。本教程旨在通过上传单个和多个文件的示例来提供对如何配置不同组件的理解。
  7. 对于全球用户的任何Web应用程序,国际化(i18n)或本地化(L10n)对于更好的用户交互非常重要。大多数Web应用程序框架都提供了根据用户区域设置本地化应用程序的简便方法。Spring也遵循此模式,并通过使用Spring拦截器、Locale解析器和不同区域设置的资源包,提供了广泛的国际化(i18n)支持。本教程通过一个示例项目来解释Spring Web应用程序中的i18n和l10n过程。
  8. 在任何Web应用程序中接受用户输入时,有必要对其进行验证。我们可以使用JavaScript在客户端验证用户输入,但也有必要在服务器端验证用户输入,以确保在用户禁用JavaScript的情况下我们正在处理有效数据。Spring MVC框架默认支持JSR-303规范,我们只需要在Spring MVC应用程序中添加JSR-303及其实现依赖项。Spring还提供了@Validator注解和BindingResult类,通过它们我们可以在控制器请求处理方法中获取由验证器实现引发的错误。本教程提供了使用注解的表单验证示例,并解释了创建自定义验证器的过程。
  9. 任何Web应用程序都需要良好的异常处理设计,因为我们不希望在应用程序抛出任何未处理的异常时为用户提供容器生成的页面。Spring MVC框架提供了在控制器类中进行健壮的异常处理的方法,全局异常处理程序以及通过HandlerExceptionResolver实现。请查看教程中的示例项目以了解更多关于Spring MVC异常处理的信息。
  10. 有时我们希望拦截HTTP请求并在将其交给控制器处理方法之前进行一些处理。这就是使用Spring MVC拦截器的地方。我们可以通过实现org.springframework.web.servlet.HandlerInterceptor接口或覆盖抽象类org.springframework.web.servlet.handler.HandlerInterceptorAdapter(该类提供了此接口的基本实现)来在Spring中创建自己的拦截器。请查看教程中的示例项目,以了解更多关于Spring MVC拦截器的信息。
  11. @RequestMapping是最常用的Spring MVC注解之一。org.springframework.web.bind.annotation.RequestMapping注解用于将Web请求映射到特定的处理程序类和/或处理程序方法。@RequestMapping可以应用于控制器类和方法。本教程通过示例和测试程序说明了不同的用法。
  12. Spring Session模块提供了用于管理Web应用程序中用户会话的API和实现。Spring Session将会话管理逻辑与应用程序解耦,使其更具容错性。Spring Session包括以下模块:Spring Session核心、Spring Session JDBC、Spring Session Data Redis和Spring Session Hazelcast。
  13. Spring MVC Gradle示例。

Spring Batch教程

  1. Spring Batch(Spring批处理框架)允许我们通过创建批次轻松处理大量记录。本文解释了什么是Spring Batch(Spring批处理框架),它的架构以及何时使用Spring Batch(Spring批处理框架)应用程序。
  2. Spring Batch示例。本教程解释了如何创建Spring Batch(Spring批处理框架)项目以处理大型CSV文件。

Spring JDBC教程

大部分的企业应用涉及到关系数据库,这就是为什么Spring提供了广泛的JDBC API支持,并且还提供了包装器来执行数据库CRUD操作。

  1. Spring JDBC和JdbcTemplate使用DataSource示例

Spring框架与JDBC API的集成非常优秀,并提供了JdbcTemplate实用类,我们可以使用它来避免在数据库操作逻辑中编写重复的代码,比如打开/关闭连接、ResultSet、PreparedStatement等。本教程提供了使用Spring JDBC集成进行CRUD操作的示例。

使用Tomcat的Spring DataSource JNDI示例

我们还知道,使用JNDI的DataSource是实现连接池和获得容器实现的好方法。本教程解释了如何在Tomcat容器中使用作为JNDI资源定义的DataSource来获取数据库连接并执行不同的操作。这是在Spring Web应用程序中获取数据库连接的首选方式,因为容器会负责管理数据库资源。

使用JDBC的Spring事务管理示例

事务管理在任何企业应用程序中都是一个重要的任务。Spring提供了广泛的事务管理支持,帮助开发人员更多地关注业务逻辑,而不必担心数据完整性。Spring声明式事务管理是事务管理的首选方式,因为它非常易于使用,没有直接的依赖关系,它使用AOP和依赖注入。

Spring JdbcTemplate

Spring JdbcTemplate类是Spring JDBC模块的核心。它提供了各种方法来执行SQL查询、读取结果集数据等。

Spring Hibernate教程

Spring是最广泛使用的Java EE框架之一,而Hibernate是市场上最好的ORM框架。这就是为什么Spring在Spring ORM模块中提供了对Hibernate的内置支持的原因。

  1. Spring和Hibernate集成示例。这个教程提供了一个例子,介绍如何将Hibernate与Spring独立应用程序集成。该例子展示了Spring 4 + Hibernate 4以及Spring 4 + Hibernate 3的集成。
  2. Spring MVC和Hibernate CRUD示例。Spring MVC可以很容易地与Hibernate框架集成。同时,我们还可以利用Spring声明式事务管理,使我们的应用程序摆脱样板式代码的束缚。
  3. Spring ORM示例。
  4. 带有AOP事务管理的Spring ORM。

Spring Security教程

Spring Security可以应用于任何Java Web应用程序,它作为应用程序的一个独立部分工作,并提供不同的身份验证和授权方式。

  1. 在Servlet Web应用中的Spring Security。这篇教程介绍了Spring Security模块的基本知识,并通过一个例子展示了基于内存、DAO和JDBC的认证。如果我们正在使用Spring MVC框架,应用Spring Security非常容易,因为我们已经有了基于Spring的配置。我们只需要插入与安全相关的配置即可。这篇文章介绍了Spring 4中引入的Spring Security模块。这篇文章还解释了如何将Spring Security应用到一个Spring MVC应用程序中。Spring Security角色基于的访问授权。

Spring Integration教程

Spring教程 – Spring核心框架教程(第3部分,共3部分)

  • Spring JSF集成示例教程

    JSF是基于组件的框架,非常注重用户界面,而Spring的核心原则是依赖注入。本教程解释了如何通过将JSF与Spring框架集成来发挥它们的最佳效果。

  • Primefaces Spring和Hibernate集成示例教程

    这是一个集成示例之一,我们解释了如何将PrimeFaces与Spring和Hibernate框架集成。这是一种非常常用的组合,可以充分发挥每个框架的优势。

  • PrimeFaces Hibernate SpringRoo集成示例

    SpringRoo是一个开源的软件工具,采用约定优于配置的概念,以驱动命令行方式简化生成基于Java的企业软件应用程序。本教程解释了SpringRoo、PrimeFaces和Hibernate框架之间的集成。

Spring消息传递

  • Spring AMQP
  • Spring RabbitMQ
  • Spring RabbitMQ 示例
  • Spring ActiveMQ 第一部分
  • Spring ActiveMQ 第二部分

Spring面试问题

如果你准备参加一个要求掌握Spring的Java EE面试,希望这篇文章能够帮助你快速回顾知识。暂时就先介绍这些Spring的教程了。Spring框架有很多模块,我会在将来发布相关的文章,并不断在这里更新。所以我建议你把这篇文章加入书签,以便将来参考。

bannerAds