zoukankan      html  css  js  c++  java
  • Spring源码阅读(一)

    Spring通过配置文件或者注解对类实例进行加载管理。稍微思考,可以猜测spring加载过程肯定先把配置转化为统一的配置对象,再把通过配置对象生产类实例。阅读源码,我们也可以发现这个逻辑。

    spring配置对象类结构

    spring实例生产工厂类结构

    spring bean生产简单例子

    例子中我们简单的使用AnnotatedGenericBeanDefinition读取spring注解配置,DefaultListableBeanFactory生产类实例。

    package com.coshaho.learn.spring;
    
    import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition;
    import org.springframework.beans.factory.support.DefaultListableBeanFactory;
    import org.springframework.stereotype.Component;
    
    /**
     * 
     * Spring注解读取.java Create on 2017年10月16日 下午11:07:02    
     *    
     * 类功能说明:   spring小例子
     *
     * Copyright: Copyright(c) 2013 
     * Company: COSHAHO
     * @Version 1.0
     * @Author coshaho
     */
    @Component("coshaho")
    public class Spring注解读取 
    {
        public void sayHello()
        {
            System.out.println("Hello, Spring.");
        }
        
        public static void main(String[] args) throws Exception 
        {
            // 读取spring配置
            AnnotatedGenericBeanDefinition beanDefinition=new AnnotatedGenericBeanDefinition(Spring注解读取.class);
            System.out.println(beanDefinition.getMetadata().getAnnotationTypes());
            System.out.println(beanDefinition.isSingleton());
            System.out.println(beanDefinition.getBeanClassName()); 
            
            // 创建一个BeanFactory
            DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
            
            // 加载配置
            factory.registerBeanDefinition("coshaho", beanDefinition);
            
            // 生产实例
            Spring注解读取 spring = (Spring注解读取) factory.getBean("coshaho");
            spring.sayHello();
        }
    }
    [org.springframework.stereotype.Component]
    true
    com.coshaho.learn.spring.Spring注解读取
    Hello, Spring.
  • 相关阅读:
    九宫格拼图 支持44 55等
    js 怎样获取div 图片等的宽度,只要值,不要px
    spring boot单元测试之RestTemplate(一)
    java设计模式-原型(prototype)
    Hibernate注解(二):关联关系映射注解
    spring之@value详解二(转载)
    spring之@Value详解(转载)
    Spring之基于注解的注入
    Spring之bean生命始末
    Spring之bean后处理器
  • 原文地址:https://www.cnblogs.com/coshaho/p/7679499.html
Copyright © 2011-2022 走看看