![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 63
生活不只*眼前的苟且
这个作者很懒,什么都没留下…
展开
-
Spring源码分析之lazy-init属性的配置
AbstractApplicationContext类默认在容器初始化的过程中就会执行依赖注入,即等价于配置lazy-init属性为false,bean的配置如下:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" ...原创 2017-05-22 23:15:33 · 3610 阅读 · 2 评论 -
Spring源码分析之doDispatch分发请求逻辑
首先,我的另外一篇博客已经讲述了DispatcherServlet的整个初始化过程,地址如下:http://blog.csdn.net/u011734144/article/details/74136168下面说说DispatcherServlet是如何分发请求的分发请求是由该类的doDispatch方法来完成的,先看下具体代码protected void doDispat原创 2017-07-02 19:47:04 · 674 阅读 · 0 评论 -
Spring源码分析之BeanPostProcessor接口和BeanFactoryPostProcessor接口方法不执行原因分析
首先下面是我的Bean/* * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with ...原创 2017-05-21 18:53:10 · 2681 阅读 · 1 评论 -
Spring源码分析之SpringMVC的DispatcherServlet是如何处理Http请求的
一般我们会在web.xml文件中配置DispatcherServlet,比如如下配置方式:<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.Dispa...原创 2017-07-02 17:43:31 · 1702 阅读 · 0 评论 -
Spring源码分析之Aop中拦截器,适配器,通知之间的关系
首先举一个例子:public class MethodBeforeAdviceInterceptor implements MethodInterceptor, Serializable { private MethodBeforeAdvice advice; /** * Create a new MethodBeforeAdviceInterceptor for the...原创 2017-06-18 18:43:23 · 1861 阅读 · 0 评论 -
Spring源码分析之ProxyFactoryBean方式实现Aop功能的分析
实现Aop功能有两种方式,1. ProxyFactoryBean方式: 这种方式是通过配置实现2. ProxyFactory方式:这种方式是通过编程实现这里只说ProxyFactoryBean方式首先说下具体的配置,一个例子如下:<bean id="testAdvisor" class="com.abc.TestAdvisor" <property nam...原创 2017-06-18 19:36:40 · 6122 阅读 · 0 评论 -
Spring IOC学习心得之注册bean的依赖关系
1. 几种map缓存的意义private final Map> dependentBeanMap = new ConcurrentHashMap>(); //指定的bean与依赖这个指定的bean的所有bean的依赖关系的缓存private final Map> dependenciesForBeanMap = new ConcurrentHashMap>(); //指定bea原创 2016-07-17 11:46:34 · 2399 阅读 · 7 评论 -
Spring IOC学习心得之Bean对IOC容器的感知
容器管理的Bean一般不需要了解容器的状态和直接使用Bean,但是在某些情况下,是需要在Bean中直接对IOC容器进行操作的,这时候,就需要在Bean中设定对容器的感知。Spring IOC也提供了该功能,它是通过特定的aware接口来完成的。aware接口有如下这些:BeanNameAware:可以在Bean中得到它在IOC容器中的Bean的实例名称BeanFactoryAware:可以原创 2016-07-31 19:22:28 · 1007 阅读 · 0 评论 -
使用spring集成的kafka收发消息
1. 引入maven依赖<dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-kafka</artifactId> <version>${spring-integration...原创 2016-08-29 11:10:05 · 22892 阅读 · 8 评论 -
Spring MVC提供http接口供下载文件
废话不多说,直接上源码:@Controllerpublic class DownLoadController { @RequestMapping(value="/zyg/download/lemmainfo") public void downloadResource(@RequestParam(value = "fileName", required = true) Str原创 2016-09-07 18:49:04 · 4043 阅读 · 0 评论 -
Spring IOC学习心得之IOC容器的初始化过程
注:本文大多数内容都是摘自《Spring技术内幕》这本书简单来说,Ioc容器的初始化过程是在refresh()方法中启动的,包括BeanDefinition的Resource定位,载入和注册三个过程。第一:Resource的定位这个Resource指的是BeanDefinition的资源定位,由ResourceLoader通过统一的Resource接口来完成。文件系统中的Bean定义信原创 2016-09-10 17:56:05 · 540 阅读 · 0 评论 -
Spring IOC学习心得之BeanPostProcessor,BeanNameAware,BeanClassLoaderAware,BeanFactoryAware接口是如何起作用的
1. 首先说下BeanPostProcessor接口中的两个方法,如下:package org.springframework.beans.factory.config;import org.springframework.beans.BeansException;public interface BeanPostProcessor { //Bean初始化的...原创 2016-09-11 18:41:43 · 9684 阅读 · 0 评论 -
Spring用@Autowire向一个类注入一个接口的两个实现类
@Servicepublic class AaaService implements IChangePassword { @Override public void changePassword(String username, String password) { }}@Servicepublic class BbbService implements IC转载 2016-09-29 10:23:37 · 29050 阅读 · 1 评论 -
spring 自动扫包代码放置的位置问题
一直以来,对于spring自动扫包的问题我都没有弄的很清楚,不知道扫包代码究竟放到哪个配置文件中,直到今天终于搞明白了。一般,我们都会在web.xml文件中有如下的配置: contextConfigLocation classpath:context/applicationContext.xml org.spr原创 2016-12-21 11:15:13 · 1663 阅读 · 0 评论 -
Spring IOC学习心得之源码级分析ContextLoaderListener的作用(IOC容器初始化入口)
ContextLoaderListener类是负责初始化IOC容器,即在我们的web项目中,这里就是IOC容器初始化的入口,由这个类启动IOC容器的初始化。它配置在web.xml中,比如如下配置:<context-param> <param-name>contextConfigLocation</param-name> ...原创 2017-05-12 18:22:17 · 673 阅读 · 0 评论 -
Spring AOP中declare-parents为特定的类增加新的功能
如果有这样一个需求,为一个已知的API添加一个新的功能。由于是已知的API,我们不能修改其类,只能通过外部包装。但是如果通过之前的AOP前置或后置通知,又不太合理,最简单的办法就是实现某个我们自定义的接口,这个接口包含了想要添加的方法。但是JAVA不是一门动态的语言,无法再编译后动态添加新的功能,这个时候就可以使用 aop:declare-parents 来做了.如果是可以改写的类,直接实现自定义转载 2017-08-30 09:46:18 · 1844 阅读 · 0 评论