Back to Javatutorial

Spring Ԫ

docs/Spring全家桶/Spring/Spring中的配置元数据(管理配置的基本数据).md

1.0.011.3 KB
Original Source

Spring Ԫ

#Spring ԪϢ

  • Spring Bean ԪϢ - BeanDefinition
  • Spring Bean ԪϢ - PropertyValues
  • Spring ԪϢ
  • Spring ⲿԪϢ - PropertySource
  • Spring Profile ԪϢ - @Profile

#Spring Bean ԪϢ

Bean ԪϢ - BeanDefinition

  • GenericBeanDefinitionͨ BeanDefinition
  • RootBeanDefinition Parent BeanDefinition ߺϲ BeanDefinition
  • AnnotatedBeanDefinitionעע BeanDefinition

#Spring Bean ԪϢ

  • Bean ԪϢ - PropertyValues
    • ޸ʵ - MutablePropertyValues
    • ԪسԱ - PropertyValue
  • Bean Ĵ洢 - AttributeAccessor
  • Bean ԪϢԪ - BeanMetadataElement

#Spring ԪϢ

Spring XML ԪϢ - beans Ԫ

beans ԪĬֵʹó
profilenullգSpring Profiles ֵ
default-lazy-initdefaultoutter beans default-lazy-init Դʱ̳иֵΪfalse
default-mergedefaultoutter beans default-merge Դʱ̳иֵΪfalse
default-autowiredefaultoutter beans default-autowire Դʱ̳иֵΪno
default-autowire-candidatesnullգĬ Spring Beans pattern
default-init-methodnullգĬ Spring Beans Զʼ
default-destroy-methodnullգĬ Spring Beans Զٷ

Spring XML ԪϢ - Ӧ

XML Ԫʹó
<context:annotation-config />Spring ע
<context:component-scan />Spring @Component ԼԶעɨ
<context:load-time-weaver />Spring LoadTimeWeaver
<context:mbean-export />¶ Spring Beans Ϊ JMX Beans
<context:mbean-server />ǰƽ̨Ϊ MBeanServer
<context:property-placeholder />ⲿԴΪ Spring
<context:property-override />ⲿԴ Spring

# XML ļװ Spring Bean ԪϢ

ײʵ - XmlBeanDefinitionReader

XML Ԫʹó
<beans:beans />XML ԴµĶ Spring Beans
<beans:bean />Spring Bean 壨BeanDefinition
<beans:alias />Ϊ Spring Bean 壨BeanDefinitionӳ
<beans:import />ⲿ Spring XML Դ

# Properties ļװ Spring Bean ԪϢ

ײʵ - PropertiesBeanDefinitionReader

Propertiesʹó
classBean ȫ޶
abstractǷΪ BeanDefinition
parentָ parent BeanDefinition
lazy-initǷΪӳٳʼ
refBean
scopeBean scope
${n}n ʾ n+1

# Java עװ Spring Bean ԪϢ

Spring ģʽע

Spring ע˵ʼ汾
@Repositoryݲִģʽע2.0
@Componentͨģʽע2.5
@Serviceģʽע2.5
@ControllerWeb ģʽע2.5
@Configurationģʽע3.0

Spring Bean ע

Spring ע˵ʼ汾
@Bean滻 XML Ԫ <bean>3.0
@DependsOnXML <bean depends-on="..."/>3.0
@LazyXML `<bean lazy-init="truefalses" />`
@Primary滻 XML Ԫ `<bean primary="truefalse" />`
@Role滻 XML Ԫ <bean role="..." />3.1
@LookupXML <bean lookup-method="...">4.1

Spring Bean עע

Spring ע˵ʼ汾
@AutowiredBean ע룬ֶ֧ҷʽ2.5
@Qualifierϸȵ @Autowired2.5
Java ע˵ʼ汾
@Resource@Autowired2.5
@Inject@Autowired2.5

Spring Bean װע

Spring ע˵ʼ汾
@Profileûװ3.1
@Conditionalװ4.0

Spring Bean ڻصע

Spring ע˵ʼ汾
@PostConstruct滻 XML Ԫ <bean init-method="..."></bean> InitializingBean2.5
@PreDestroy滻 XML Ԫ <bean destroy-method="..."></bean> DisposableBean2.5

Spring BeanDefinition ע

Spring ע˵ʼ汾
XML ԴXmlBeanDefinitionReader1.0
Properties ԴPropertiesBeanDefinitionReader1.0
Java עAnnotatedBeanDefinitionReader3.0

#Spring Bean ԪϢײʵ

#Spring XML Դ BeanDefinition ע

API - XmlBeanDefinitionReader

  • Դ - Resource
  • ײ - BeanDefinitionDocumentReader
    • XML - Java DOM Level 3 API
    • BeanDefinition - BeanDefinitionParserDelegate
    • BeanDefinition ע - BeanDefinitionRegistry

#Spring Properties Դ BeanDefinition ע

API - PropertiesBeanDefinitionReader

  • Դ
    • ֽ - Resource
    • ַ - EncodedResouce
  • ײ
    • 洢 - java.util.Properties
    • BeanDefinition - API ڲʵ
    • BeanDefinition ע - BeanDefinitionRegistry

#Spring Java ע BeanDefinition ע

API - AnnotatedBeanDefinitionReader

  • Դ
      • java.lang.Class
  • ײ
      • ConditionEvaluator
    • Bean Χ - ScopeMetadataResolver
    • BeanDefinition - ڲ API ʵ
    • BeanDefinition - AnnotationConfigUtils.processCommonDefinitionAnnotations
    • BeanDefinition ע - BeanDefinitionRegistry

# XML ļװ Spring IoC ԪϢ

Spring IoC XML

ռģSchema Դ URL
beansspring-beanshttps://www.springframework.org/schema/beans/spring-beans.xsd
contextspring-contexthttps://www.springframework.org/schema/context/spring-context.xsd
aopspring-aophttps://www.springframework.org/schema/aop/spring-aop.xsd
txspring-txhttps://www.springframework.org/schema/tx/spring-tx.xsd
utilspring-beansbeans https://www.springframework.org/schema/util/spring-util.xsd
toolspring-beanshttps://www.springframework.org/schema/tool/spring-tool.xsd

# Java עװ Spring IoC ԪϢ

Spring IoC װע

Spring ע˵ʼ汾
@ImportResource滻 XML Ԫ <import>3.0
@ImportConfiguration Class3.0
@ComponentScanɨָ package ±ע Spring ģʽע3.1

Spring IoC ע

Spring ע˵ʼ汾
@PropertySourceԳ PropertySource ע3.1
@PropertySources@PropertySource ע4.0

# Extensible XML authoring չ SpringXML Ԫ

Spring XML չ

  • д XML Schema ļ XML ṹ
  • Զ NamespaceHandler ʵ֣ռ
  • Զ BeanDefinitionParser ʵ֣XML Ԫ BeanDefinition
  • ע XML չռ XML Schema ӳ

#Extensible XML authoring չԭ

#ʱ

  • AbstractApplicationContext#obtainFreshBeanFactory
    • AbstractRefreshableApplicationContext#refreshBeanFactory
      • AbstractXmlApplicationContext#loadBeanDefinitions
        • ...
          • XmlBeanDefinitionReader#doLoadBeanDefinitions
            • ...
              • BeanDefinitionParserDelegate#parseCustomElement

#

BeanDefinitionParserDelegate#parseCustomElement(org.w3c.dom.Element, BeanDefinition)

  • ȡ namespace
  • ͨ namespace NamespaceHandler
  • ParserContext
  • Ԫأȡ BeanDefinintion

# Properties ļװⲿ

ע

  • @org.springframework.context.annotation.PropertySource
  • @org.springframework.context.annotation.PropertySources

API

  • org.springframework.core.env.PropertySource
  • org.springframework.core.env.PropertySources

# YAML ļװⲿ

API

  • org.springframework.beans.factory.config.YamlProcessor
    • org.springframework.beans.factory.config.YamlMapFactoryBean
    • org.springframework.beans.factory.config.YamlPropertiesFactoryBean

#

Spring Ƚ XML Schema Щ

ռģSchema Դ URL
beansspring-beanshttps://www.springframework.org/schema/beans/spring-beans.xsd
contextspring-contexthttps://www.springframework.org/schema/context/spring-context.xsd
aopspring-aophttps://www.springframework.org/schema/aop/spring-aop.xsd
txspring-txhttps://www.springframework.org/schema/tx/spring-tx.xsd
utilspring-beansbeans https://www.springframework.org/schema/util/spring-util.xsd
toolspring-beanshttps://www.springframework.org/schema/tool/spring-tool.xsd

Spring ԪϢЩ

  • Bean ԪϢͨý飨 XMLProeprties ȣ BeanDefinition
  • IoC ԪϢͨý飨 XMLProeprties ȣ IoC ΪעAOP
  • ⲿãͨԴ ProeprtiesYAML ȣ PropertySource
  • Spring Profileͨⲿãṩ֧

Extensible XML authoring ȱ

  • ߸ӶȣԱҪϤ XML Schemaspring.handlersspring.schemas Լ Spring API
  • ǶԪֽ֧ͨҪʹ÷ݹǶ׽ķʽǶףӣԪ
  • XML ܽϲSpring XML DOM Level 3 API ʵ֣ API ⣬Ȼܽϲ
  • XML ֲԲܺͱԵ XML ܣ JAXB

#ο

ο

https://www.w3cschool.cn/wkspring https://www.runoob.com/w3cnote/basic-knowledge-summary-of-spring.html http://codepub.cn/2015/06/21/Basic-knowledge-summary-of-Spring https://dunwu.github.io/spring-tutorial https://mszlu.com/java/spring http://c.biancheng.net/spring/aop-module.html