Spring
文章平均质量分 62
Spring
kusedexingfu
这个作者很懒,什么都没留下…
展开
-
BigDecimal返回前端强制保留小数点后两位
首先,代码层面:DecimalFormat decimalFormat = new DecimalFormat("0.00#");BigDecimal usdAmount = new BigDecimal("1");new BigDecimal(decimalFormat.format(amount));其次,返回值上添加注解:@JsonFormat(shape = JsonFormat.Shape.STRING)private BigDecim原创 2022-06-09 11:52:56 · 1838 阅读 · 0 评论 -
SpringBoot使用@JsonDeserialize和@JsonSerialize优雅的处理数据格式
使用SpringMVC,在Controller中接受请求的数据,或者返回数据,有些需要做些特殊的处理。比如说,请求过来的数据是以万为单位的,但是我们需要转化为以元单位的;返回的手机号,中间四位需要以****隐藏。对于这种需求,我们可以手动进行处理。我们也可用@JsonSerialize和@JsonDeserialize来优雅的处理。@JsonDeserializer在我做的项目中,遇到这样一种情况,有一组字段,我定义的数据类型是String类型,如果选择了一个,传单个数字;如果多选了,需要用逗号.原创 2021-12-08 16:10:40 · 4037 阅读 · 0 评论 -
RedisTemplate使用序列化解析-老板再也不用担心redis存取数据有问题啦!
准备工作首先本测试项目需要引入以下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>application.yaml也先只简单的配置些redis的必要参数server: port: 8080spring原创 2021-05-19 22:42:33 · 769 阅读 · 3 评论 -
手撸Spring boot stater,傻瓜都能学会
我们在使用Spring boot的时候,引入其他组件的时候,会直接引入一个个的starter的依赖。比如用redis的时候会引入spring-boot-starter-data-redis,用rocketmq的时候,会引入rocketmq-spring-boot-starter。我们也可以采用这种方式,将我们自己开发的组件做成starter,让其他程序直接引用。下面做一个demo来介绍下具体的实现方法。一.新建项目我们建一个名为 custom-spring-boot-starter 的sprin原创 2021-06-27 01:26:01 · 647 阅读 · 1 评论 -
SpringMVC自定义消息转换器其实很简单
在我们的日常开发中,作为服务端,接受到的请求数据是加密字符串。我们可能会在Controller中获取到加密的字符串,然后手动解密,类似于如下做法(用base64做样例):@PostMappingpublic void base64Post(String base64Param) throws UnsupportedEncodingException { String jsonStr = new String(Base64.getDecoder().decode(base64Param), "原创 2021-06-24 00:03:53 · 1524 阅读 · 2 评论 -
RestTemplate优雅的发送Get请求
在我们的项目中,如果借助RestTemplate发送Get请求,我们可以通过拼接字符串的方式将url拼接出来,比如下面这种方式:String url = "http://127.0.0.1/get?id=" + id + "&name=" + name;原创 2021-05-31 23:18:10 · 24644 阅读 · 6 评论 -
Spring Bean的生命周期和钩子接口
Spring Bean的生命周期流程如下图:Spring Bean生命周期代码验证下面我们来通过代码来验证下:public class SpringBean implements BeanNameAware, BeanFactoryAware, ApplicationContextAware,原创 2021-05-23 19:29:54 · 787 阅读 · 2 评论 -
Spring项目在项目退出时做些操作
有两种方式:1.实现org.springframework.beans.factory.DisposableBean接口2.使用@PreDestroy注解两种只使用一种即可,上代码:@Componentpublic class ShutdownHandler implements DisposableBean { @Resource private UserMapper userMapper; @Override public void destroy原创 2021-05-17 22:39:53 · 348 阅读 · 1 评论 -
Spring添加Filter
SpringMVC添加Filter基于xml配置的方式在web.xml中声明<web-app> <filter> <filter-name>Filtername</filter-name> <filter-class>Filter类</filter-class> </filter> <!-- filter中可以在init方法中通过FilterConf原创 2021-01-21 00:30:21 · 1681 阅读 · 0 评论 -
Spring AOP切点表达式args的两种用法:限制参数类型 and 获取目标方法参数
Spring AOP的args切点表达式有两种用法,一种是限制参数类型,另一种是获取目标方法参数。然而没见到将这两种用法放到一起讲解的,今天,笔者做了几个demo,做了对比。首先,测试代码是基于springboot做的测试。引入的spring aop的依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</原创 2021-01-16 15:03:50 · 4091 阅读 · 1 评论 -
基于注解的Spring AOP注解用法详解
AOP术语通知(Advice): 通知定义了切面是什么以及何时使用。何时:某个方法调用前?调用后?之前之后都调用?还是只是方法抛出异常时调用?Spring切面可以应用5种类型的通知:前置通知、后置通知、返回通知、异常通知、环绕通知。 连接点(JoinPoint):指的是在应用程序执行过程中能够插入的点,也就是可用位置; 切入点(PointCut):切入点是建立在连接点基础上的,例如有十个方法,每个方法的调用前后等都是连接点,但你只想在某个方法的调用前织入通知,那么就可以使用切点来定义这个方法。通过切原创 2021-01-16 14:31:10 · 1434 阅读 · 0 评论 -
Spring是如何解析xml配置文件的标签的
对于用xml文件进行配置的spring项目,比如如下配置文件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context原创 2020-07-09 00:08:58 · 723 阅读 · 0 评论 -
Spring源码解析汇总
Spring 如何解决循环依赖的问题原创 2020-07-05 22:58:09 · 275 阅读 · 0 评论 -
Spring--Environment类
一、Environment 用来表示整个应用运行时的环境,为了更形象地理解Environment,你可以把Spring应用的运行时简单地想象成两个部分:一个是Spring应用本身,一个是Spring应用所处的环境。 Environment在容器中是一个抽象的集合,是指应用环境的2个方面:profiles和properties。1. Profile profile配置是一个被命名的、bean定义的逻辑组,这些bean只有在给定的profile配置激活时才会注册到容器。不管是XML还是注解,转载 2020-07-05 17:46:36 · 635 阅读 · 0 评论 -
ApplicationContext.getBean源码解析
spring中有两种类型的Bean:一种是普通的JavaBean;另一种就是工厂Bean(FactoryBean),这两种Bean都受Spring的IoC容器管理,但它们之间却有一些区别。普通的JavaBean不再多说,我们将其定义好,然后在配置文件中定义并配置其依赖关系,就可以通过IoC容器的getBean获取到。那么FactoryBean呢?FactoryBean跟普通Bean不同,它是实现了FactoryBean<T>接口的Bean,1.通过BeanFactory类的.原创 2020-07-04 23:38:06 · 1382 阅读 · 0 评论 -
Spiring初始化BeanFactory源码解读
在初始化Spring的时候会调用org.springframework.context.support.AbstractApplicationContext#refresh方法,其中ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();会获取BeanFactory。/** * Tell the subclass to refresh the internal bean factory. * @re原创 2020-07-04 17:58:22 · 186 阅读 · 0 评论 -
BeanFactory预处理:BeanFactoryPostProcessor源码执行分析
和BeanPostProcessor原理一致,Spring提供了对BeanFactory进行操作的处理器BeanFactoryProcessor,简单来说就是获取容器BeanFactory,这样就可以在真正初始化bean之前对bean做一些处理操作。BeanFactoryPostProcessor接口源码:@FunctionalInterfacepublic interface BeanFactoryPostProcessor { /** * Modify the application原创 2020-07-04 17:07:19 · 196 阅读 · 0 评论 -
Bean预处理:BeanPostProcessor的使用和源码解析
作用BeanPostProcessor接口的作用是在Spring容器完成Bean实例化前后可以添加一些自己的逻辑处理,我们可以定义一个或者多个BeanPostProcessor接口的实现。BeanPostProcessor接口提供了两个方法:1、postProcessBeforeInitialization 可以对Bean在实例化之前添加一些逻辑处理2、postProcessAfterInitialization 可以对bean在实例化之后添加一些逻辑处理public interf..原创 2020-07-04 01:44:17 · 382 阅读 · 0 评论 -
@resource与@autowired
1、不同点@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。@Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false)@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的b原创 2020-06-23 18:21:10 · 329 阅读 · 0 评论 -
Sping4通过注解装配bean
代码的注释中由详细的解释首先是基础类:package com.wpw.spring4.test.assemble;public interface Animal { public void play();}package com.wpw.spring4.test.assemble;import org.springframework.stereotype.Compon...原创 2019-07-06 16:14:18 · 151 阅读 · 0 评论 -
Spring事务管理
该文章大多内容摘抄自《spring实战:第三版》一.spring对事务管理的支持spring提供了对编码式和声明式事务管理的支持编码式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作与事务规则进行解耦,但是声明式事务只能在方法级别声明事务的边界。二.事务管理器spring不直接管理事务,而是提供了多种事务管理器。每个事务管理器都会充当某一特定平...原创 2019-06-07 18:57:09 · 255 阅读 · 0 评论 -
spring使用context:property-placeholder载不进属性问题
环境:spring3.1.1+mybatis3.2.8+mybatis-spring1.2.3 今天整合了SpringMVC + MyBatis,发现了一个问题,在这里做个记录,各位如果遇到相同的问题,可以参考下。 context:property-placeholder location="classpath:prop/jdbc.properties" />引转载 2016-08-01 23:18:22 · 4483 阅读 · 0 评论 -
spring的定时任务
配置文件如下: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="h原创 2016-05-23 22:14:15 · 2861 阅读 · 0 评论