随笔分类 - Spring & SpringMVC
摘要:
Spring事务 Spring本身并不实现事务,Spring事务的本质还是底层数据库对事务的支持,没有数据库事务的支持,Spring事务就不会生效。 例如:使用JDBC操作数据库,使用事务的步骤主要分为如下5步: 第一步:获取连接Connection con = DriverManager.getC
阅读全文

摘要:在项目开发过程中,我们不乏会有这样的诉求:需要在执行完数据库操作后,发送消息(比如短信、邮件、微信通知等)来执行其它的操作,而这些并不是主干业务,所以一般会放在异步线程里去执行~ 关于问题的解决,Spring它非常友好的提供了两种解决方案来处理: 事务同步管理器TransactionSynchron
阅读全文
摘要:众所周知,Spring容器可以简单粗暴的把它理解为一个大大的Map,存储着容器所管理的所有的单实例对象。我们从使用getBean(String beanName)方法,根据bean名称就能获得容器内唯一的Bean实例就能“证明”到这一点。 可你是否曾想过:既然它是Map,那万一我们写的@Bean的b
阅读全文
摘要:快速入门 使用Spring的测试框架需要添加如下依赖: <!--测试框架--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scop
阅读全文
摘要:@Value注解是Spring3.0后提出来的一个注解。注解内容本身非常之简单,但是它提供的功能却非常之强大。 首先从它的注解本身定义知道,它能使用在: 字段上 set方法上 方法入参上 当作元注解 它的功能大致可归类为: 注入普通字符串 书写SpEL表达式(功能强大包括:获取系统属性、调用静态方法
阅读全文
摘要:Spring的PropertyResourceConfigurer是个抽象类,继承自PropertiesLoaderSupport,并实现了接口BeanFactoryPostProcessor。 注意:它是个Bean工厂的后置处理器,而不是Bean的后置处理器 它抽象了容器启动时,BeanFacto
阅读全文
摘要:ApplicationContextInitializer用于在刷新容器之前初始化Spring的回调接口。 ApplicationContextInitializer是Spring框架原有的概念, 这个类的主要目的就是在 ConfigurableApplicationContext类型(或者子类型)
阅读全文
摘要:BeanDefinition与BeanFactory扩展 spring在生成bean前会先生成bean的定义,然后注册到BeanFactory中,再之后才能生成bean。那么对于从xml配置好的BeanDefinition,如果想要增加删除修改该怎么办呢? BeanDefinitionRegistr
阅读全文
摘要:BeanDefinition定义 Bean的定义信息是Spring容器的一个核心概念,核心接口是BeanDefinition。 Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDefinition结构。 不管是是通过xml配置文件的<Bean>标签,还是通过注解配置的@Be
阅读全文
摘要:数据转换,顾名思义就是数据类型之间的转换,但是对于数据转换,有的是可以进行转化的,例如字符串转整型,但是有些数据类型之间是不能进行转换的,例如从“aaa”字符串到整型的转换。 不同的框架,肯定都有自己的数据转换的实现,比如MyBatis、Hibernate等这些转换器都是必备的。作为这么强大的Spr
阅读全文
摘要:Converter只完成了数据类型的转换,却不负责输入输出数据的格式化工作,日期时间、货币等虽都以字符串形式存在,却有不同的格式。 Spring格式化框架要解决的问题是:从格式化的数据中获取真正的数据,绑定数据,将处理完成的数据输出为格式化的数据。Formatter接口就承担着这样的责任。 Conv
阅读全文
摘要:我们在实际的项目开发中,肯定会有这样的需求:请求时记录请求日志,返回时记录返回日志;对所有的入参解密,对所有的返回值加密…。这些都是与业务没关系的花边但又不可缺少的功能,若你全都写在Controller的方法内部,那将造成大量的代码重复且严重干扰了业务代码的可读性。 怎么破?可能你第一反应想到的是使
阅读全文
摘要:数据绑定 这个概念在任何一个成型的框架中都是特别重要的(尤其是web框架),它能让框架更多的自动化,更好容错性以及更高的编码效率。它提供的能力是:把字符串形式的参数转换成服务端真正需要的类型的转换(当然可能还包含校验)。 DataBinder 此类所在的包是org.springframework.v
阅读全文
摘要:Spring MVC 框架的 Converter<S,T> 是一个可以将一种数据类型转换成另一种数据类型的接口,这里 S 表示源类型,T 表示目标类型。开发者在实际应用中使用框架内置的类型转换器基本上就够了,但有时需要编写具有特定功能的类型转换器。 例如,用户输入的日期可能有许多种形式,如"Dece
阅读全文
摘要:@RequestBody 接收参数 注意事项: @RequestBody:后台接收只能声明一个、且只能接收 json @RequestBody:不能和 form/data 共存 @RequestBody:必须是:contentType : "application/json;charset=utf-
阅读全文
摘要:执行时机 SmartInitializingSingleton主要用于在IoC容器基本启动完成时进行扩展,这时非Lazy的Singleton都已被初始化完成。所以,在该扩展点执行ListableBeanFactory#getBeansOfType()等方法不会出现因过早加载Bean出现副作用。这个扩
阅读全文
摘要:import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.Application
阅读全文