spring
文章平均质量分 80
spring 框架分为模块。应用程序可以选择他们需要的模块。核心是核心容器的模块,包括配置模型和依赖注入机制。除此之外,Spring 框架还为不同的应用程序架构提供了基础支持,包括消息传递、事务数据和持久性以及 Web。它还包括基于 Servlet 的 Spring MVC Web 框架,以及并行的
吕布辕门
逆水行舟,不进则退!
展开
-
Spring系列之RestTemplate-21
目录`RestTemplate`初始化URI标头消息体消息转换Jackson视图RestTemplate它RestTemplate通过 HTTP 客户端库提供了更高级别的 API。它使在一行中调用 REST 端点变得容易。初始化默认构造函数用于java.net.HttpURLConnection执行请求。您可以切换到具有ClientHttpRequestFactory. 有对以下内容的内置支持:Apache HttpComponents网状OkHttp例如,要切换到 Apache Htt原创 2022-01-18 16:28:20 · 302 阅读 · 0 评论 -
Spring系列之Spring Web MVC-20
目录Spring Web MVCDispatcherServlet上下文层次结构特殊BeanWeb MVC 配置程序配置工作原理异常视图解析配置重定向转发内容协商过滤器FormContentFilter转发的标头ShallowEtagHeaderFilterCORS带注释的控制器组件扫描请求映射URI 模式模式比较后缀匹配消费者类型生产者媒体类型参数、标题HTTP 头,选项显式注册处理程序方法方法参数返回值类型转换`@RequestParam``@RequestHeader``@CookieValue``@原创 2022-01-18 14:05:02 · 484 阅读 · 0 评论 -
Spring系列之使用JPA-19
我们使用JPA时也完全可以选择Hibernate作为底层实现,但也可以选择其它的JPA提供方,比如EclipseLink。Spring内置了JPA的集成,并支持选择Hibernate或EclipseLink作为实现。这里我们仍然以主流的Hibernate作为JPA实现为例子,演示JPA的基本用法。在AppConfig中启用声明式事务管理,创建DataSource:@Configuration@ComponentScan@EnableTransactionManagement@PropertySou原创 2022-01-17 17:38:34 · 742 阅读 · 0 评论 -
Spring系列之使用JDBC-18
目录使用JDBC为 JDBC 数据库访问选择一种方法使用`JdbcTemplate`查询 ( `SELECT`)更新 ( `INSERT`, `UPDATE`, 和`DELETE`)`JdbcTemplate`其他`JdbcTemplate`操作`JdbcTemplate` 最佳实践检索自动生成的主键使用JDBC为 JDBC 数据库访问选择一种方法您可以从多种方法中进行选择,以形成您的 JDBC 数据库访问的基础。除了三种风格之外JdbcTemplate,一种新的SimpleJdbcInsert和 S原创 2022-01-17 16:20:17 · 522 阅读 · 0 评论 -
Spring系列之DAO-17
DAOSpring 中的数据访问对象 (DAO) 支持旨在以一致的方式轻松使用数据访问技术(例如 JDBC、Hibernate 或 JPA)。这使您可以相当轻松地在上述持久性技术之间切换,并且还可以让您编写代码而不必担心捕获每种技术特定的异常。保证您的数据访问对象 (DAO) 或存储库提供异常转换的最佳方法是使用@Repository注释。此注释还允许组件扫描支持查找和配置您的 DAO 和存储库,而无需为它们提供 XML 配置条目。任何 DAO 或存储库实现都需要访问持久性资源,具体取决于所使用的持久原创 2022-01-17 16:03:30 · 204 阅读 · 0 评论 -
Spring系列之事务管理-16
目录事务管理事务抽象声明式事务管理回滚事务事务边界事务传播事务管理因为Spring的事务管理不需与任何特定的事务API耦合,并且其提供了两种事务管理方式:编程式事务管理和声明式事务管理。对不同的持久层访问技术,编程式事务提供一致的事务编程风格,通过模板化的操作一致性地管理事务;而声明式事务基于Spring AOP实现,却并不需要程序开发者成为AOP专家,亦可轻易使用Spring的声明式事务管理。事务抽象Spring 事务抽象的关键是事务策略的概念。事务策略由 定义TransactionManager原创 2022-01-17 16:01:39 · 81 阅读 · 0 评论 -
Spring系列之面向切面编程-15
目录AOP 概念AOP 代理@AspectJ 支持启用@AspectJ 支持使用 Java 配置启用 @AspectJ 支持通过 XML 配置启用 @AspectJ 支持声明一个方面声明切入点声明通知实例化切面例子使用注解装配AOP面向方面编程 (AOP) 通过提供另一种思考程序结构的方式来补充面向对象编程 (OOP)。OOP 中模块化的关键单元是类,而 AOP 中模块化的单元是方面。AOP 概念Aspect:切面,即一个横跨多个核心逻辑的功能,或者称之为系统关注点;Joinpoint:连接点,即原创 2022-01-17 14:48:42 · 482 阅读 · 0 评论 -
Spring系列之验证-14
目录Java Bean 验证Bean 验证概述配置 Bean 验证提供程序注入验证器配置一个`DataBinder`Spring MVC 3 验证Java Bean 验证Bean 验证概述Bean Validation 通过约束声明和 Java 应用程序的元数据提供了一种通用的验证方式。要使用它,您可以使用声明性验证约束来注释域模型属性,然后由运行时强制执行。Bean Validation 允许您声明约束,如以下示例所示:public class PersonForm { @NotNul原创 2022-01-17 13:53:45 · 381 阅读 · 0 评论 -
Spring系列之字段格式化-13
字段格式化Spring 3 引入了一个方便的SPI,它为客户端环境的实现Formatter提供了一个简单而健壮的替代方FormatterFormatter实现字段格式化逻辑的SPI 。package org.springframework.format.datetime;public final class DateFormatter implements Formatter<Date> { private String pattern; public DateF原创 2022-01-17 13:46:07 · 280 阅读 · 0 评论 -
Spring系列之类型转换-12
目录类型转换转换器 SPI使用`ConverterFactory`使用`GenericConverter``ConversionService`配置一个`ConversionService``ConversionService`编程方式使用类型转换Spring 3 引入了一个core.convert提供通用类型转换系统的包。系统定义了一个 SPI 来实现类型转换逻辑和一个 API 来在运行时执行类型转换。在 Spring 容器中,您可以使用此系统作为实现的替代PropertyEditor方案,将外部化的原创 2022-01-17 13:34:08 · 325 阅读 · 0 评论 -
Spring系列之资源-11
目录`Resource`内置`Resource`实现`UrlResource``ClassPathResource``FileSystemResource``ServletContextResource``ResourceLoader``ResourcePatternResolver``ResourceLoaderAware`资源作为依赖应用程序上下文和资源路径构建应用程序上下文应用程序上下文构造函数资源路径中的通配符Ant 风格`classpath*:`前缀本章介绍 Spring 如何处理资源以及如何在原创 2022-01-17 13:12:01 · 141 阅读 · 0 评论 -
Spring系列之基于环境抽象-10
目录Bean 定义配置文件使用 `@Profile`XML Bean 定义配置文件激活配置文件默认配置文件`PropertySource`使用`@PropertySource`Environment接口是集成在容器中的抽象,它对应用程序环境的两个关键方面进行建模:配置文件 和属性。配置文件是一个命名的、逻辑的 bean 定义组,仅当给定的配置文件处于活动状态时才向容器注册。可以将 Bean 分配给配置文件,无论是在 XML 中定义还是使用注释定义。与配置文件相关的对象的作用Environment是确定哪原创 2022-01-17 10:51:07 · 158 阅读 · 0 评论 -
Spring系列之基于 Java 的容器配置-9
目录组合基于 Java 的配置使用`@Import`注解有条件地包含`@Configuration`类或`@Bean`方法结合 Java 和 XML 配置组合基于 Java 的配置Spring 的基于 Java 的配置功能允许您编写注解,这可以降低配置的复杂性。使用@Import注解就像<import/>在 Spring XML 文件中使用该元素来帮助模块化配置一样,@Import注释允许@Bean从另一个配置类加载定义,如以下示例所示:@Configurationpublic cl原创 2022-01-14 16:50:01 · 108 阅读 · 0 评论 -
Spring系列之类路径扫描和注册组件-8
目录类路径扫描和注册组件`@Component`使用元注释和组合注释自动检测类和注册 Bean 定义使用过滤器自定义扫描在组件中定义 Bean 元数据命名自动检测到的组件为自动检测的组件提供范围类路径扫描和注册组件本节描述了通过扫描类路径隐式检测候选组件的选项。候选组件是与过滤条件匹配的类,并在容器中注册了相应的 bean 定义。您可以使用注解(例如@Component)、AspectJ 类型表达式或您自己的自定义过滤条件来选择哪些类具有向容器注册的 bean 定义。从 Spring 3.0 开始,S原创 2022-01-14 16:16:39 · 146 阅读 · 0 评论 -
Spring系列之基于注解的容器配置7
目录基于注解的容器配置@Required(弃用)`@Autowired``@Primary`@Qualifier使用泛型作为自动装配限定符`@Resource``@Value`使用`@PostConstruct`和`@PreDestroy`基于注解的容器配置在配置 Spring 时,注解是否比 XML 更好?基于注释的配置的引入提出了这种方法是否比 XML“更好”的问题。简短的回答是“视情况而定”。长答案是每种方法都有其优点和缺点,通常由开发人员决定哪种策略更适合他们。由于它们的定义方式,注释在其声明原创 2022-01-14 16:07:36 · 184 阅读 · 0 评论 -
容器扩展点-6
目录自定义 BeanPostProcessor自定义配置元数据`BeanFactoryPostProcessor`自定义实例化逻辑`FactoryBean`通常,应用程序开发人员不需要子类化ApplicationContext 实现类。相反,可以通过插入特殊集成接口的实现来扩展 Spring IoC 容器。接下来的几节描述了这些集成接口。自定义 BeanPostProcessor该BeanPostProcessor接口定义了您可以实现的回调方法,以提供您自己的(或覆盖容器的默认)实例化逻辑、依赖关系解原创 2022-01-14 14:48:25 · 152 阅读 · 0 评论 -
自定义 Bean 的性质-5
spring Framework 提供了许多接口,您可以使用它们来自定义 bean 的性质。生命周期回调要与容器对 bean 生命周期的管理进行交互,可以实现 SpringInitializingBean和DisposableBean接口。容器要求 afterPropertiesSet()前者和destroy()后者让 bean 在初始化和销毁 bean 时执行某些操作。在内部,Spring 框架使用BeanPostProcessor实现来处理它可以找到的任何回调接口并调用适当的方法。如果你需要自定义原创 2022-01-14 14:47:20 · 109 阅读 · 0 评论 -
IOC容器-依赖
DI 存在两个主要变体原创 2022-01-14 13:20:42 · 272 阅读 · 0 评论 -
bean范围
目录bean范围单例范围原型范围请求、会话、应用程序和 WebSocket 范围初始 Web 配置请求范围会话范围应用范围WebSocket 范围自定义范围bean范围当您创建一个 bean 定义时,您创建了一个用于创建由该 bean 定义的类的实际实例的方法。您可以从这个模板创建许多对象实例。Spring 框架支持六个范围,其中四个仅在您使用 web应用时可用范围描述singleton(默认)将单个 bean 定义限定为每个 Spring IoC 容器的单个对象实例。p原创 2022-01-14 13:51:36 · 177 阅读 · 0 评论 -
IoC 容器概述
Spring 的控制反转 (IoC) 容器。IoC 也称为依赖注入 (DI)。这是一个过程。对象仅通过构造函数参数、工厂方法的参数设置的属性来定义它们的依赖关系, 然后容器在创建 bean 时注入这些依赖项。在IoC模式下,控制权发生了反转,即从开发人员自己创建转移到了IoC容器,所有组件不再由应用程序自己创建和配置,而是由IoC容器负责,所以叫控制反转。原创 2022-01-14 13:16:53 · 327 阅读 · 0 评论 -
Spring框架概述
Spring 使创建 Java 企业应用程序变得容易。它提供了在企业环境中采用 Java 语言所需的一切,支持将 Groovy 和 Kotlin 作为 JVM 上的替代语言,并且可以根据应用程序的需要灵活地创建多种架构。从 Spring Framework 5.1 开始,Spring 需要 JDK 8+ (Java SE 8+) 并为 JDK 11 LTS 提供开箱即用的支持。原创 2022-01-13 17:59:59 · 116 阅读 · 0 评论