Spring源码分析
Spring源码分析
日薪灬越亿
这个作者很懒,什么都没留下…
展开
-
Spring源码分析之大结局-手写springmvc
1.创建一个maven工程,并生成web工程 pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0...原创 2019-06-13 16:20:34 · 240 阅读 · 0 评论 -
Spring源码分析(十二) - Aop基础
AOP: 面向切面编程[底层就是动态代理] 指程序在运行期间动态的将某段代码切入到指定方法位置进行运行的编程方式 先建立Cap10MainConfigAop配置类 在POM.XML中导入spring-aspects依赖包 新建立一个业务逻辑类Calculator.java package com.caojiulu.cap10.aop; //业务逻辑类 public class...原创 2019-06-05 16:19:06 · 147 阅读 · 0 评论 -
Spring源码分析(十一) - Aware注入spring底层组件原理
问题:自定义组件想要使用Spring容器底层的组件(ApplicationContext, BeanFactory)等 自定义组件实现xxxAware, 在创建对象的时候, 会调用接口规定的方法注入到相关组件:Aware 先来看一段代码: CTRL+SHIFT+T 找到Aware 使用ApplicationContextAware接口为例, 实现接口 1, 新建Light...原创 2019-06-05 11:46:02 · 276 阅读 · 0 评论 -
Spring源码分析(十) - 注解@Autowired @Resource @Qualifier @Primary @Inject自动装配
注解@Autowired自动装配 自动装配:spring利用依赖注入(DI), 完成对IOC容器中的各个组件的依赖关系赋值 1,新建TestController.java TestService.java TestDao; 分别建在指定的包内,可看步骤2. 这些所有JAVA 类的对象扫描后都是保存在IOC容器中管理的; 2,新建配置类Cap9MainConfig.jav...原创 2019-05-19 22:55:32 · 301 阅读 · 0 评论 -
Spring源码分析(九) - 注解@Value赋值
注解@Value赋值的作用是给IOC容器中的bean赋值用的。 1, 新建Bird.java类 2,新建Cap8MainConfig.java配置类 3,新建测试用例Cap8Test.java, 从容器获取bean并打印 打印结果如下: 主要是没设值 4,以前使用bean.xml配置文件进行赋值 5,使用@Value赋值如何赋值呢?见下 6,从配置文件[pro...转载 2019-05-19 22:45:21 · 1302 阅读 · 5 评论 -
Spring源码分析(八) - Spring底层对BeanPostProcessor的使用
Spring底层对BeanPostProcessor的使用 1,ApplicationContextAwareProcessor实现分析: 此类帮我们组建IOC容器,跟进ApplicationContextAwareProcessor我们发现, 这个后置处理器其实就是判断我们的bean有没有实现ApplicationContextAware接口,并处理相应的逻辑,其实所有的后置处理器原...原创 2019-05-19 22:35:13 · 700 阅读 · 0 评论 -
Spring源码分析(七) - bean的生命周期
bean的生命周期:指 bean创建-----初始化----销毁 的过程 bean的生命周期是由容器进行管理的 我们可以自定义 bean初始化和销毁 方法: 容器在bean进行到当前生命周期的时候, 来调用自定义的初始化和销毁方法 如何定义和销毁(4种方式): 1)指定初始化和销毁方法 <之前在beanx.xml, 可以指定init-method和destory-mot...原创 2019-05-19 22:25:06 · 383 阅读 · 0 评论 -
Spring源码分析(六)-注解Import注册bean
一般来说,向容器中注册组件有下面几种方式 1.包扫描和组件标注注解(@Controller @Service @Repository @Component),一般针对我们自己写的类 2.@Bean【导入第三方和包的组件,比如前面的person类,需要在IOC容器中使用】 3.使用@Import【快速给容器导入一个组件】注:bean有点简单,构造一个无参或有参的bean a,@Imp...原创 2019-05-19 22:07:07 · 333 阅读 · 0 评论 -
Spring源码分析(五)-注解@Conditional条件注册bean
Conditional条件注册bean 假设有这么一个场景,需要根据操作系统加载不同的实例 将IOC容器注册bean时, 当操作系统为WINDOWS时,注册caojiulu实例; 当操作系统为LINUX时, 注册hujinxiao实例,此时要用得@Conditional注解进行定制化条件选择注册bean 新建Cap5MainConfig.java package com.caojiulu...原创 2019-05-14 16:22:31 · 163 阅读 · 0 评论 -
Spring源码分析(四)-注解lazy懒加载
lazy 懒加载,主要针对单实例bean,容器启动时候不创建对象,仅当第一次使用的bean才创建 新建Cap4MainConfig.java package com.caojiulu.cap4; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation....原创 2019-05-14 16:00:06 · 767 阅读 · 1 评论 -
Spring源码分析(三)-注解scope
scope用来表示bean在ioc容器中的作用范围 新建Cap3MainConfig.java package com.caojiulu.cap3.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; i...原创 2019-05-14 15:47:19 · 283 阅读 · 0 评论 -
Spring源码分析(二)-注解ComponentScan
ComponentScan的作用:指定要扫描的包 直接用代码说话吧! 操作:新建cap2文件夹,新建Cap2MainConfig.java配置类 1,@ComponentScan(value="com.caojiulu.cap2")表示扫描此目录下的包 测试: 新建Cap2MainConfig2配置类 新建dao, service,controller 在Cap2MainCo...原创 2019-05-14 15:16:09 · 146 阅读 · 0 评论 -
Spring源码分析(一)-spring的基本认识以及xml 注解基本使用
Spring是什么? Spring是一种开源轻量级框架,是为了解决企业应用程序开发复杂性而创建的,Spring致力于解决JavaEE的各层解决方案,而不仅仅于某一层的方案。 Spring发展历程 2003年2月Spring框架正式称为一道开源项目,Spring致力于J2EE应用的各种解决方案,而不仅仅专注于某一层解决方案。可以说Spring是企业应用开发的“一站式”选择, Spring贯穿于...原创 2019-05-14 15:08:01 · 196 阅读 · 0 评论