Skip to content

WenyuChang/usage-spring-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Framework Detail Usage Demo (AOP not included)

Implemented Feature from Spring Frameword: (SpringConfiguration.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"
	xmlns:context="http://www.springframework.org/schema/context">
	<bean id="dependencyBean" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" />
	<bean id="dependencyBeanPrototype" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" scope="prototype" />
	<bean id="dependencyBeanFromGetInstance" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanFromGetInstanceImpl" factory-method="getInstance"/>
	<bean id="dependencyBeanCustomInitAndDestory" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanCustomInitAndDestroyImpl" init-method="customInit" destroy-method="customDestroy" />
	<bean id="dependencyBeanInitAndDestory" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanInitAndDestoryImpl" />
	<bean id="dependencyBeanAware" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanAwareImpl" />
	<bean id="returnValueReplacer" class="wenyu.learning.AdvancedUsage.DependencyBeans.MethodReplacers.ReturnValueReplacer" /> 
	<bean id="dependencyBeanMethodReplacer" class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl">
		<replaced-method name="returnValue" replacer="returnValueReplacer" />
	</bean>
	
	
	<bean id="advancedBean1" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean1: value set function" />
		<property name="intValue" value="9" />
		<property name="depBean" ref="dependencyBean" />
	</bean>
	
	<bean id="advancedBean2" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<constructor-arg value="advancedBean2: constructor arguments" />
		<constructor-arg value="99" />
		<constructor-arg ref="dependencyBean" />
	</bean>
	
	<bean id="advancedBean3" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean3: Inner Bean" />
		<property name="depBean" >
			<bean class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" />
		</property>
	</bean>
	
	<bean id="advancedBean4" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean3: Wiring Collection" />
		<property name="stringList">
			<list>
				<value>string1</value>
				<value>string2</value>
				<value>string3</value>
			</list>
		</property>
		<property name="depBeanSet">
			<set>
				<ref bean="dependencyBean" />
				<ref bean="dependencyBean" /> <!-- set cannot have same item, so this item will not be added -->
				<bean class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" />
			</set>
		</property>
		<property name="map">
			<map>
				<entry key="key1" value="value1" />
				<entry key="key2" value-ref="dependencyBean" />
				<entry key-ref="dependencyBean" value="value2" />
				<entry>
					<key><bean class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" /></key>
					<value>value3</value>
				</entry>
				<entry>
					<key><ref bean="dependencyBean" /></key>
					<bean class="wenyu.learning.AdvancedUsage.DependencyBeans.DependencyBeanImpl" />
				</entry>
				<entry>
					<key><null /></key>
					<null />
				</entry>
			</map>
		</property>
		<property name="prop">
			<props>
				<prop key="prop-key1">value1</prop>
				<prop key="prop-key2">value2</prop>
				<prop key="prop-key3">value3</prop>
			</props>
		</property>
	</bean>
	
	<bean id="advancedBean5" class="wenyu.learning.AdvancedUsage.CustomBeanImpl" autowire="byName">
		<property name="name" value="advancedBean5: Autowiring" />
	</bean>
	
	<bean id="advancedBean6" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean6: Bean Scoping" />
		<property name="depBean" ref="dependencyBeanPrototype" />
		<property name="depBeanSet">
			<set>
				<ref bean="dependencyBeanPrototype" />
			</set>
		</property>
	</bean>
	
	<bean id="advancedBean7" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean7: Static Factory Method" />
		<property name="depBean" ref="dependencyBeanFromGetInstance" />
	</bean>
	
	<bean id="advancedBean8" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean8: Custom Method Initialize and Destroy Methods" />
		<property name="depBean" ref="dependencyBeanCustomInitAndDestory" />
	</bean>
	
	<bean id="advancedBean9" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean9: Method Initialize and Destroy Methods" />
		<property name="depBean" ref="dependencyBeanInitAndDestory" />
	</bean>
	
	<bean id="advancedBean" class="wenyu.learning.AdvancedUsage.CustomBeanImpl" abstract="true">
		<property name="name" value="advancedBean10: Advanced - Declaring parent and child beans" />
		<property name="intValue" value="99" />
		<property name="depBean" ref="dependencyBean" />
	</bean>
	
	<bean id="advancedBean10" parent="advancedBean">
		<property name="name" value="advancedBean10: Advanced - Declaring parent and child beans (Override)" />
	</bean>
	
	<bean id="advancedBean11" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean11: Advanced - Method Replacer" />
		<property name="depBean" ref="dependencyBeanMethodReplacer" />
	</bean>
	
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<!-- <property name="location" value="src/main/java/wenyu/learning/AdvancedUsage/customs.properties" /> -->
		<property name="locations">
			<list>
				<value>src/main/java/wenyu/learning/AdvancedUsage/externalPropFiles/customs.properties</value>
				<value>src/main/java/wenyu/learning/AdvancedUsage/externalPropFiles/customs.aux.properties</value>
			</list>
		</property>
	</bean>
	<bean id="advancedBean12" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="${customs.name}" />
		<property name="intValue" value="${customs.intvalue}" />
	</bean>
	
	<bean id="advancedBean13" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean13: Advanced - Making beans aware" />
		<property name="depBean" ref="dependencyBeanAware" />
	</bean>
	
	<bean id="advancedBean15" class="wenyu.learning.AdvancedUsage.CustomBeanImpl" dependency-check="simple">
		<!-- Dependency-check type: none, simple, object, all -->
		<property name="name" value="advancedBean15: Advanced - Dependency Check" />
		<property name="intValue" value="99" />
	</bean>
	
	<context:annotation-config />
	<context:component-scan base-package="wenyu.learning.AdvancedUsage.DependencyBeans" />
	<bean id="advancedBean16" class="wenyu.learning.AdvancedUsage.CustomBeanImpl">
		<property name="name" value="advancedBean16: Advanced - Annotation" />
		<property name="depBean" ref="dependencyBeanAnnotation" />
		<property name="depBeanSet">
			<set>
				<ref bean="dependencyBeanAnnotation" />
			</set>
		</property>
	</bean>
</beans>

About

Sprint Framework Detail Usage Demo (AOP not included)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages