
spring
mazhen1991
这个作者很懒,什么都没留下…
展开
-
spring的异步调用
异步调用除了可以使用多线程以外,spring自已也实现了通过注解进行异步调用的功能,我们只需要进行一些简单的配置,并且在需要异步调用的方法上添加对应的注解即可。 在applicationContext.xml中添加如下:<task:annotation-driven executor="defaultTaskExecutor" scheduler="defaultTaskScheduler" />原创 2017-11-04 14:04:24 · 5091 阅读 · 0 评论 -
从零学spring boot-集成redis
添加依赖<!-- spring boot2.0后,默认使用的redisConnectionFactory为LettuceConnectionFactory,这里想要继续用jedis,就做个exclusion --><dependency> <groupId>org.springframework.boot</groupId> &l...原创 2019-09-21 12:25:25 · 259 阅读 · 0 评论 -
spring boot2.1后的版本不打印Mapped日志问题
spring boot项目启动时候会打印对外提供的rest接口的Mapped的信息,但是有的时候会出现不打印的情况,那是因为spring boot的版本是2.1以上了,源码做了一定的修改。解决方案解决方案很简单,只需要在application.properties中添加以下配置即可:logging.level.org.springframework.web=trace问题出现的原因我们...原创 2019-09-21 12:24:45 · 2287 阅读 · 0 评论 -
spring源码-messageSource和监听器的初始化
这一节我们来看一下容器启动时messageSource的初始化和监听器的初始化。这一节主要的源码分四块:initMessageSource();initApplicationEventMulticaster();onRefresh();registerListeners();其中onRefresh方法是留给用户自定义的,所以这里主要看一下其他三个方法的源码。initMessageS...原创 2019-08-31 11:27:41 · 1743 阅读 · 0 评论 -
spring源码-4.注册bean的后处理器
执行完beanFactory的后处理器后,在实例化beanDefinition前,我们需要将bean的后处理器注册到容器中,这样才能在实例化beanDefinition的时候去执行这些后处理器。首先我们来看一下这个方法的入口(AbstractApplicationContext):protected void registerBeanPostProcessors(ConfigurableLis...原创 2019-08-31 11:27:05 · 1331 阅读 · 0 评论 -
spring源码-3.beanFactory后处理器
上一节我们已经讲完了beanFactory是如何初始化,并且是如何将需要注入到容器中的bean的beanDefinition注册到beanFactory中的。这一节我们再来看一下beanFactory的后处理器是如何运行的。这里从初始化完beanFactory到beanFactory的后处理器的执行有三步:beanFactory的准备工作自定义方法对beanFactory中的后处理器在执行...原创 2019-08-31 11:26:06 · 1382 阅读 · 0 评论 -
spring源码-2.3.自定义标签的解析
上一节已经详细的看了一下默认标签的解析了,这一节我们来看一下自定义标签是如何解析的。首先,来看一下自定义标签解析的入口方法,delegate.parseCustomElement(ele):public BeanDefinition parseCustomElement(Element ele, @Nullable BeanDefinition containingBd) { //根据...原创 2019-08-25 20:07:23 · 1354 阅读 · 0 评论 -
spring源码-2.2.默认标签的解析
上一节中,我们详细分析了spring在解析xml,创建beanFactory的前期准备工作,这一节我们将会详细分析一下spring是如何解析系统默认标签的。首先进入解析默认标签方法的入口,parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate):private void parseDefaultElement...原创 2019-08-25 20:06:49 · 1372 阅读 · 0 评论 -
spring源码-2.1.解析xml准备
这一节我们来看一下obtainFreshBeanFactory都做了什么,这个方法主要就是创建了BeanFactory:protected ConfigurableListableBeanFactory obtainFreshBeanFactory() { //创建BeanFactory refreshBeanFactory(); //返回BeanFactory return ge...原创 2019-08-25 20:06:15 · 1262 阅读 · 0 评论 -
spring源码-1.容器刷新前准备
这一节我们来看一下prepareRefresh方法都做了什么。首先看一下这个方法的源码:protected void prepareRefresh() { //记录开始时间 this.startupDate = System.currentTimeMillis(); //设置状态 this.closed.set(false); this.active.set(true); //这...原创 2019-08-25 20:05:39 · 1457 阅读 · 0 评论 -
spring源码-xml解析概述
我们都知道ApplicationContext就是spring的容器,下面我们来看看spring容器是如何启动的。首先我们来看一下查看的源码的一些背景:spring版本:spring5启动的xml内容:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sc...原创 2019-08-25 20:05:01 · 1389 阅读 · 0 评论 -
如何使用spring的jdbcTemplate的in
List<Integer> ids = new ArrayList<Integer>(); ids.add(1);ids.add(1);NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dbUtil.getJdbcTemplate()); Map<String,原创 2017-11-25 21:27:45 · 2248 阅读 · 0 评论 -
从零学spring boot-集成redis时未使用连接池的问题
在之前spring boot集成redis的文章中曾今指出如果没有配置redis连接池的信息(即使存在默认的连接信息),那么在使用redisTemplate的时候,是不会使用连接池的。这一篇文章我们将从源码中分析这其中的原因。首先我们需要看一下redisTemplate获取redis连接的源码://redisTemplate获取连接实际上是通过JedisConnectionFactory来获取...原创 2019-09-21 12:26:01 · 1110 阅读 · 0 评论