| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <xsd:schema xmlns="http://www.springframework.org/schema/context" xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| xmlns:beans="http://www.springframework.org/schema/beans" |
| xmlns:tool="http://www.springframework.org/schema/tool" |
| targetNamespace="http://www.springframework.org/schema/context" elementFormDefault="qualified" |
| attributeFormDefault="unqualified"> |
| |
| <xsd:import namespace="http://www.springframework.org/schema/beans"/> |
| <xsd:import namespace="http://www.springframework.org/schema/tool"/> |
| |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Defines the configuration elements for the Spring Framework's application |
| context support. Effects the activation of various configuration styles |
| for the containing Spring ApplicationContext. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| |
| <xsd:element name="property-placeholder"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Activates replacement of ${...} placeholders, resolved against the specified properties file or Properties object |
| (if any). Falls back to resolving placeholders against JVM system properties. |
| Alternatively, define a parameterized PropertyPlaceholderConfigurer bean in the context. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:exports type="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:attribute name="location" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The location of the properties file to resolve placeholders against, as a Spring |
| resource location: a URL, a "classpath:" pseudo URL, or a relative file path. |
| Multiple locations may be specified, separated by commas. If neither location nor properties-ref is |
| specified, placeholders will be resolved against system properties. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="properties-ref" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation source="java:java.util.Properties"><![CDATA[ |
| The bean name of a Java Properties object that will be used for property substitution. |
| If neither location nor properties-ref is specified, placeholders will be resolved against system properties. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="property-override"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Activates pushing of override values into bean properties, based on configuration |
| lines of the following format: beanName.property=value |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:exports type="org.springframework.beans.factory.config.PropertyOverrideConfigurer"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:attribute name="location" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The location of the properties file to read property overrides from, as a Spring |
| resource location: a URL, a "classpath:" pseudo URL, or a relative file path. |
| Multiple locations may be specified, separated by commas. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="properties-ref" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation source="java:java.util.Properties"><![CDATA[ |
| The bean name of a Java Properties object that will be used for property overrides. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="annotation-config"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Activates various annotations to be detected in bean classes: Spring's @Required and |
| @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available), |
| JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's |
| @PersistenceContext and @PersistenceUnit (if available). Alternatively, you may |
| choose to activate the individual BeanPostProcessors for those annotations. |
| |
| Note: This tag does not activate processing of Spring's @Transactional or EJB3's |
| @TransactionAttribute annotation. Consider the use of the <tx:annotation-driven> |
| tag for that purpose. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="component-scan"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Scans the classpath for annotated components that will be auto-registered as |
| Spring beans. By default, the Spring-provided @Component, @Repository, |
| @Service, and @Controller stereotypes will be detected. |
| |
| Note: This tag implies the effects of the 'annotation-config' tag, activating @Required, |
| @Autowired, @PostConstruct, @PreDestroy, @Resource, @PersistenceContext and @PersistenceUnit |
| annotations in the component classes, which is usually desired for autodetected components |
| (without external configuration). Turn off the 'annotation-config' attribute to deactivate |
| this default behavior, for example in order to use custom BeanPostProcessor definitions |
| for handling those annotations. |
| |
| Note: You may use placeholders in package paths, but only resolved against system |
| properties (analogous to resource paths). A component scan results in new bean definition |
| being registered; Spring's PropertyPlaceholderConfigurer will apply to those bean |
| definitions just like to regular bean definitions, but it won't apply to the component |
| scan settings themselves. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="include-filter" type="filterType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Controls which eligible types to include for component scanning. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="exclude-filter" type="filterType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Controls which eligible types to exclude for component scanning. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="base-package" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The comma-separated list of packages to scan for annotated components. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="resource-pattern" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Controls the class files eligible for component detection. Defaults to "**/*.class", the recommended value. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="use-default-filters" type="xsd:boolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Indicates whether automatic detection of classes annotated with @Component, @Repository, @Service, or @Controller |
| should be enabled. Default is "true". |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="annotation-config" type="xsd:boolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Indicates whether the implicit AutowiredAnnotationBeanPostProcessor and CommonAnnotationBeanPostProcessor should |
| be enabled. Default is "true". |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="name-generator" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The fully-qualified classname of the BeanNameGenerator to be used for naming detected components. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:expected-type type="java.lang.Class"/> |
| <tool:assignable-to type="org.springframework.beans.factory.support.BeanNameGenerator"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="scope-resolver" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The fully-qualified class name of the ScopeMetadataResolver to be used for resolving the scope of detected components. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:expected-type type="java.lang.Class"/> |
| <tool:assignable-to type="org.springframework.context.annotation.ScopeMetadataResolver"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="scoped-proxy"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Indicates whether proxies should be generated for detected components, which may be necessary when using certain |
| non-singleton scopes in a proxy-style fashion. Default is to generate no such proxies. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="no"/> |
| <xsd:enumeration value="interfaces"/> |
| <xsd:enumeration value="targetClass"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="load-time-weaver"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Activates a Spring LoadTimeWeaver for this application context, available as |
| a bean with the name "loadTimeWeaver". Any bean that implements the |
| LoadTimeWeaverAware interface will then receive the LoadTimeWeaver reference |
| automatically; for example, Spring's JPA bootstrap support. |
| |
| The default weaver is determined automatically. As of Spring 2.5: detecting |
| Sun's GlassFish, Oracle's OC4J, Spring's VM agent and any ClassLoader |
| supported by Spring's ReflectiveLoadTimeWeaver (for example, the |
| TomcatInstrumentableClassLoader). |
| |
| The activation of AspectJ load-time weaving is specified via a simple flag |
| (the 'aspectj-weaving' attribute), with the AspectJ class transformer |
| registered through Spring's LoadTimeWeaver. AspectJ weaving will be activated |
| by default if a "META-INF/aop.xml" resource is present in the classpath. |
| |
| This also activates the current application context for applying dependency |
| injection to non-managed classes that are instantiated outside of the Spring |
| bean factory (typically classes annotated with the @Configurable annotation). |
| This will only happen if the AnnotationBeanConfigurerAspect is on the classpath |
| (i.e. spring-aspects.jar), effectively activating "spring-configured" by default. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:exports type="org.springframework.instrument.classloading.LoadTimeWeaver"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:attribute name="weaver-class" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The fully-qualified classname of the LoadTimeWeaver that is to be activated. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:expected-type type="java.lang.Class"/> |
| <tool:assignable-to type="org.springframework.instrument.classloading.LoadTimeWeaver"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="aspectj-weaving" default="autodetect"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="on"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Switches Spring-based AspectJ load-time weaving on. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration value="off"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Switches Spring-based AspectJ load-time weaving off. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| <xsd:enumeration value="autodetect"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Switches AspectJ load-time weaving on if a "META-INF/aop.xml" resource |
| is present in the classpath. If there is no such resource, then AspectJ |
| load-time weaving will be switched off. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:enumeration> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="spring-configured"> |
| <xsd:annotation> |
| <xsd:documentation source="java:org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect"> |
| <![CDATA[ |
| Signals the current application context to apply dependency injection |
| to non-managed classes that are instantiated outside of the Spring bean |
| factory (typically classes annotated with the @Configurable annotation). |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"/> |
| </xsd:simpleType> |
| </xsd:element> |
| |
| <xsd:element name="mbean-export"> |
| <xsd:annotation> |
| <xsd:documentation source="java:org.springframework.jmx.export.annotation.AnnotationMBeanExporter"><![CDATA[ |
| Activates default exporting of MBeans by detecting standard MBeans in the Spring |
| context as well as @ManagedResource annotations on Spring-defined beans. |
| |
| The resulting MBeanExporter bean is defined under the name "mbeanExporter". |
| Alternatively, consider defining a custom AnnotationMBeanExporter bean explicitly. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:exports type="org.springframework.jmx.export.annotation.MBeanExporter"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:attribute name="default-domain" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The default domain to use when generating JMX ObjectNames. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="server" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The bean name of the MBeanServer to which MBeans should be exported. |
| Default is to use the platform's default MBeanServer (autodetecting |
| WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer). |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="registration"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The registration behavior, indicating how to deal with existing MBeans |
| of the same name: fail with an exception, ignore and keep the existing |
| MBean, or replace the existing one with the new MBean. |
| |
| Default is to fail with an exception. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="failOnExisting"/> |
| <xsd:enumeration value="ignoreExisting"/> |
| <xsd:enumeration value="replaceExisting"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="mbean-server"> |
| <xsd:annotation> |
| <xsd:documentation source="java:org.springframework.jmx.support.MBeanServerFactoryBean"><![CDATA[ |
| Exposes a default MBeanServer for the current platform. |
| Autodetects WebLogic 9+, WebSphere 5.1+ and the JDK 1.5+ platform MBeanServer. |
| |
| The default bean name for the exposed MBeanServer is "mbeanServer". |
| This may be customized through specifying the "id" attribute. |
| ]]></xsd:documentation> |
| <xsd:appinfo> |
| <tool:annotation> |
| <tool:exports type="javax.management.MBeanServer"/> |
| </tool:annotation> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="beans:identifiedType"> |
| <xsd:attribute name="agent-id" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| The agent id of the target MBeanServer, if any. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:complexType name="filterType"> |
| <xsd:attribute name="type" use="required"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Controls the type of filtering to apply to the expression. |
| |
| "annotation" indicates an annotation to be present at the type level in target components; |
| "assignable" indicates a class (or interface) that the target components are assignable to (extend/implement); |
| "aspectj" indicates an AspectJ type expression to be matched by the target components; |
| "regex" indicates a regex expression to be matched by the target components' class names; |
| "custom" indicates a custom implementation of the org.springframework.core.type.TypeFilter interface. |
| |
| Note: This attribute will not be inherited by child bean definitions. |
| Hence, it needs to be specified per concrete bean definition. |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="annotation"/> |
| <xsd:enumeration value="assignable"/> |
| <xsd:enumeration value="aspectj"/> |
| <xsd:enumeration value="regex"/> |
| <xsd:enumeration value="custom"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="expression" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation><![CDATA[ |
| Indicates the filter expression, the type of which is indicated by "type". |
| ]]></xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| </xsd:schema> |