spring
文章平均质量分 92
菜到怀疑人生
这个作者很懒,什么都没留下…
展开
-
Spring学习(一)——构建第一个spring程序
首先在eclipse上建立maven项目,关于建立方式,网上有许多教程,这里就不在赘述在pom.xml中添加以下依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId>...原创 2018-08-18 10:14:14 · 324 阅读 · 0 评论 -
springmvc工作原理(无源码解析)
前言对springmvc的工作方式一直有一些兴趣,查阅了一些五花八门的资料,自己也尝试着去看源码,但无奈源码太长,时间性价比太低,遂简述基本的工作方式,如有错误,欢迎指出 SpringMvc工作原理图各组件功能:HandleMapping:根据URI定位Handler(即使用@RequestMapping注解的类或方法),最后以HandlerExecutionChain(包...原创 2018-10-01 18:32:18 · 287 阅读 · 0 评论 -
SpringMvc的数据转换、格式化、控制器通知
预备知识对于SpringMvc,在xml配置<mvc:annotation-drivern>或是@EnableWebMvc时,Spring IoC容器会自动生成一个关于转换器和格式化器的类实例——FormattingConversionServiceFactoryBean,它是一个工厂,通过它可以获得DefaultFormattingConversionService类对象,它实现...原创 2018-10-07 10:15:16 · 283 阅读 · 0 评论 -
SpringMVC(版本5.1.0)的HandlerAdapter以及HandlerMapping
前言用国庆的最后一天把SpringMVC感兴趣的部分全部看完了,网上资料五花八门,有些总结写的很好,就是SpringMVC版本过旧,真的很晕,本片博客的SpringMVC版本为5.1.0,以后都不会在博客中贴过多源码,因为记不住源码,只会大致讲讲处理过程 预备知识代码来源:https://blog.csdn.net/u012420654/article/details/594804...原创 2018-10-07 16:51:41 · 435 阅读 · 3 评论 -
Spring源码阅读(5.1.0版本)——Contextloaderlistener
目录前言结论什么是ContextLoaderListener源码解析前言上了大三了,逐渐想保研,现在一边准备比赛,一边学习新知识,一边做着项目,希望自己能扛下去吧,这篇博客的源码来自spring 5.1.0版本,如有错误,欢迎指出 结论Contextloaderlistener干了下面几件事初始化web容器(以反射的方式) 设置web容器的父容器 将we...原创 2018-10-14 12:06:31 · 636 阅读 · 0 评论 -
SpringMVC请求参数绑定(版本5.1.0,含源码)
目录 前言HandlerMethodArgumentResolver初始化解析器匹配总结前言这篇博客过后,我的基本疑问也就解决了,这个国庆节,了解了springmvc基本工作原理、springmvc如何获得控制器方法(HandlerMapping与HandlerAdapter),springmvc如何进行参数转换(HttpMessageConveter、转换器、格式...原创 2018-10-08 08:47:54 · 974 阅读 · 0 评论 -
spring源码阅读(5.1.0)——DefaultSingletonBeanRegistry
目录 前言什么是DefaultSingletonBeanRegistry代码属性登记完全实例化的Bean添加Bean到singletonFactories获取Beangetter与setter函数用于判断的函数记录bean与bean之间的关系的函数注册实现了DisposableBean接口的类销毁Bean的函数如何解决setter循环依赖...原创 2018-10-16 20:52:49 · 1100 阅读 · 0 评论 -
spring源码阅读(5.1.0版本)——BeanDefinition
目录前言什么是BeanDefinitionBeanDefinition的继承体系BeanDefinition源码前言spring,对不起,我不知道你这么强.jpg(跪地) 什么是BeanDefinitionBeanDefinition用于保存Bean的相关信息,是生产Bean的原材料,BeanDefinition是一个顶端接口,在此基础上,衍生出了保存特定Bea...原创 2018-10-20 08:42:15 · 800 阅读 · 1 评论 -
spring源码阅读(5.1.0版本)——AbstractBeanDefinition
目录 什么是AbstractBeanDefinition源码解析继承结构定义的常量属性总结承接上篇介绍BeanDefinition的博客:https://blog.csdn.net/dhaiuda/article/details/83183497 什么是AbstractBeanDefinitionAbstractBeanDefinition直接继承Bea...原创 2018-10-20 16:44:02 · 2892 阅读 · 0 评论 -
spring源码阅读(5.1.0版本)——RootBeanDefinition
本文难免有错误,如有错误,欢迎指出什么是RootBeanDefinition注:从spring2.5开始,spring一开始都是使用GenericBeanDefinition类保存Bean的相关信息,在需要时,在将其转换为其他的BeanDefinition类型是运行时使用的Bean视图,即spring会使用RootBeanDefinition初始化Bean 在源码注释中,有这么一句:...原创 2018-10-23 10:03:37 · 13153 阅读 · 0 评论 -
spring源码阅读——GenericBeanDefinition及其子类
目录继承图源码 GenericBeanDefinition AnnotatedGenericBeanDefinition ScannedGenericBeanDefinition本文难免有错误,如有错误,欢迎指出继承图AnnotatedGenericBeanDefinition:存储@Configuration注解注释的类Scanne...原创 2018-10-23 20:04:49 · 8207 阅读 · 0 评论 -
spring源码学习——ConfigurationClassBeanDefinition
本文难免会有错误,如有错误,欢迎指出什么是ConfigurationClassBeanDefinition在@Configuration注解的类中,使用@Bean注解实例化的Bean,其定义会用ConfigurationClassBeanDefinition存储 ConfigurationClassBeanDefinition的默认设置1、如果@Bean注解没有指定bean的名...原创 2018-10-24 15:22:02 · 1610 阅读 · 0 评论 -
spring源码学习(5.1.0版本)——Bean的初始化(上)
目录 前言源头preInstantiateSingletons方法getBean(String beanName)doGetBeangetObjectForBeanInstancegetObjectFromFactoryBeandoGetObjectFromFactoryBean总结前言看了这么久,终于将Bean的初始化流程看完了,整个初始化流程异常...原创 2018-11-02 16:26:35 · 536 阅读 · 0 评论 -
spring源码学习(5.1.0版本)——Bean的初始化(中)
目录 前言createBean有自定义TargetSource代理类的生成resolveBeforeInstantiationapplyBeanPostProcessorsBeforeInstantiationpostProcessBeforeInstantiationapplyBeanPostProcessorsAfterInitializationpostP...原创 2018-11-04 18:39:26 · 960 阅读 · 0 评论 -
spring学习(十四)————SpringAOP知识点总结
目录 SpringAOP的一点理解SpringAOP的基本术语通过注解使用springAOPspringAOP的引入SpringAOP的一点理解其实springaop就是一个拦截器,springaop通过代理模式实现方法的拦截 SpringAOP的基本术语1、切面:拦截器类,其中会定义切点以及通知2、通知:切面当中的方法,包括:前置通知:在动态代理反...原创 2018-09-06 08:33:17 · 1913 阅读 · 0 评论 -
Spring学习(十五)——单例Bean的线程安全(Web开发)
目录 前言问题验证为什么如此设计由此出现的另一个问题前言最近在做一个网站的项目,考虑到Spring的Bean默认为单例,会不会出现请求排队的现象,于是有了这篇博客(业务代码真的很无聊呀.......... 问题Spring的Bean默认是单例,在接收到请求后,tomcat是创建一个线程去处理对应请求的,此时单例Bean就相当于临界资源,临界资源最典型的问...原创 2018-09-09 14:57:48 · 733 阅读 · 0 评论 -
springAOP中的target、this、within的区别
前言关于这三者的区别,在网上找到的资料不多,大多是AspectJ的资料,并且大量的copy,查阅官方文档后,自己又做了一些实验,最终有了这篇博客,因为是自己摸索的结果,并且没有阅读相应源码,如有错误,欢迎指出(有空还是把markdown给看了,csdn的排版不是很喜欢........... targettarget匹配目标对象的类型,即被代理对象的类型,例如A继承了B接口,则使用t...原创 2018-09-03 18:47:17 · 7728 阅读 · 0 评论 -
Spring学习(二)——官方文档阅读(5.0.7)——Bean的初始化、依赖注入
Bean的初始化bean的定义(通过xml、注解、java配置)会被封装成BeanDefinition对象,该对象包括如下元数据:1、类的全限定名2、Bean行为配置元素,例如(scope、lifecycle callbacks等)3、对于其他bean的依赖4、其他配置信息,例如数据库连接池中连接的个数BeanDefinition包括的这些元数据可用于描述一个Bean,容器...原创 2018-08-18 10:15:15 · 391 阅读 · 1 评论 -
spring学习(三)——官方文档阅读(5.0.7)——bean属性的配置方法
bean属性(即类属性)的配置方法<constructor-arg/>与<property/>中可配置的属性和标签如下:name、value属性<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> &原创 2018-08-18 21:07:16 · 346 阅读 · 0 评论 -
spring学习(七)——spring官方文档阅读(5.0.7)——生命周期回调
这个章节官方文档写的很乱,这些是自己验证后所写,如有错误,欢迎指出生命周期回调我们可以实现InitializingBean和DisposableBean接口。容器会调用前者的afterPropertiesSet()方法,调用后者的destory()方法,以允许在初始化和销毁bean时执行某些操作,也可以使用@PostConstruct和@PreDestory注解来实现生命周期回调,通过Be...原创 2018-08-22 08:27:35 · 329 阅读 · 0 评论 -
spring学习(十一)——spring官方文档阅读(5.0.7)——spring的@Bean与@Configuration注解
@Bean与@Configuration注解@Bean注解用于方法上,返回的实例将由Spring IOC管理,当在@Configuration注解的类中使用@Bean注解时,@Bean相当于<bean/>元素,@Configuration相当于<beans>元素@Configurationpublic class AppConfig { @Bean ...原创 2018-08-26 07:26:06 · 325 阅读 · 0 评论 -
spring学习(十一)——spring官方文档阅读(5.0.7)——环境抽象
环境抽象profile允许在不同的环境下注册使用不同的bean,举个例子,我们在生产环境使用JNDI配置数据源,在测试环境使用in-memory的数据源,我们先实现这两种方法:in-memory的datasource:@Beanpublic DataSource dataSource() { return new EmbeddedDatabaseBuilder() ...原创 2018-08-26 07:38:52 · 231 阅读 · 0 评论 -
spring学习(十二)——spring官方文档阅读(5.0.7)——ApplicationContext的额外能力
ApplicationContext的额外能力Spring IOC容器也提供了下列功能:1、负责国际化的MessageSource接口2、通过ResourceLoader接口来加载资源3、负责事件发布的ApplicationEventPublisher,监听器ApplicationListener4、提供父容器访问功能的HierarchicalBeanFactory这里只介...原创 2018-08-26 08:24:36 · 327 阅读 · 0 评论 -
spring学习(四)——spring官方文档阅读(5.0.7)——自动装配
自动装配上面的方式都是我们自己配置所需要的依赖,需要依赖的id或是name,我们也可以使用spring的自动装配技术,只需简单一步,轻松、快捷、方便,居家旅行,值得拥有........,容器会寻找我们所需要的bean,不一定需要我们指定依赖的id或name(用起来真的很爽呀!!!),而且自动装配很方便扩展,类多一个属性时,可以 不需要更改构造函数,用起来真的爽,对于xml来说,可以在<b...原创 2018-08-19 09:57:23 · 738 阅读 · 0 评论 -
spring学习(八)——spring官方文档阅读(5.0.7)——Bean的继承关系、Spring IOC容器的扩展
Bean的继承关系bean的定义包括许多配置信息,例如构造参数、属性值、静态工厂方法名等,子bean定义从父bean定义继承配置数据,子bean可以覆盖或是添加某些值,子bean的定义由ChildBeanDefinition类决定,如果我们使用XML作为配置,方式如下: <bean id="inheritedTestBean" abstract="true" cl...原创 2018-08-22 18:55:56 · 176 阅读 · 0 评论 -
spring学习(五)——spring官方文档阅读(5.0.7)——方法注入
方法注入使用场景:假设单例bean A中有一个方法每次调用都需要一个新的非单例bean B,由于IOC只会在创建bean A的时候进行依赖注入,所以将bean B作为A的属性不能解决问题,此时可以使用方法注入,一种方法是让A实现接口ApplicationContextAware接口,这个接口定义如下:public interface ApplicationContextAware {...原创 2018-08-20 10:16:49 · 950 阅读 · 0 评论 -
spring学习(九)——spring官方文档阅读(5.0.7)——使用注解配置Spring(@Primary、@Qualifier、支持的JSR250注解)
使用注解配置spring注解方式和xml方式均可配置spring,注解方式比xml方式先解析,它们满足覆盖原则,因此,对于相同的配置部分,xml方式会覆盖注解方式使用注解,首先要在xml配置中声明对注解进行处理的类,我们可以用bean定义来声明它们,也可以使用下列方式一次声明所有注解:<?xml version="1.0" encoding="UTF-8"?><b...原创 2018-08-23 08:07:08 · 516 阅读 · 0 评论 -
spring学习(十)——spring官方文档阅读(5.0.7)——spring的组件
类路径扫描和组件管理@Component、@Service、@Controller、@Repository会被扫描注册为组件,DAO层使用注解@Repository,服务层使用@Service,控制层使用@Controller,这三个角色均可以使用@Component注解,但是不够细致化,@Service、@Controller、@Repository注解都是在@Component注解的基础上...原创 2018-08-23 14:47:32 · 257 阅读 · 0 评论 -
spring学习(六)——spring官方文档阅读(5.0.7)——Bean的scopes
Bean的scopesspring定义了六种scope,其中有四种只在web应用有效,在<bean/>中使用scope属性指定值:1、singleton(默认):单例,每个IOC容器为每个bean创建一个唯一的实例2、prototype:在需要某个实例时(例如作为某个bean的依赖,使用getBean函数),创建一个新实例,spring不会管理这种bean的生命周期,所以我...原创 2018-08-21 07:41:34 · 420 阅读 · 0 评论 -
spring学习(十三)——SpringEL
spring表达式(spring EL)具有许多功能:1、使用Bean的id引用Bean2、调用指定对象的方法和访问对象的属性3、进行简单的算术运算4、提供正则表达式进行匹配5、集合配置 接下来通过例子的方式解释spring el的使用方法://通过Bean的id或是name获取bean,然后进行注入@Value("#{role}")//赋予long型值1...原创 2018-09-02 08:19:13 · 2765 阅读 · 0 评论 -
spring源码学习(5.1.0)——Bean的初始化(下)
目录 前言populateBeanautowireByNameautowireByTyperesolveDependencydoResolveDependencyapplyPropertyValuesinitializeBean结语 前言上篇博客主要介绍了createBean方法,Bean的初始化会有三个主要的方法createBean:...原创 2018-11-12 08:56:38 · 504 阅读 · 0 评论