separate configs
This commit is contained in:
		
							parent
							
								
									fd34932f4c
								
							
						
					
					
						commit
						32a9212fc9
					
				| @ -3,12 +3,9 @@ package com.baeldung.scope; | ||||
| import com.baeldung.scope.prototype.PrototypeBean; | ||||
| import com.baeldung.scope.singletone.SingletonAppContextBean; | ||||
| import com.baeldung.scope.singletone.SingletonBean; | ||||
| import com.baeldung.scope.singletone.SingletonFunctionBean; | ||||
| import com.baeldung.scope.singletone.SingletonObjectFactoryBean; | ||||
| import com.baeldung.scope.singletone.SingletonProviderBean; | ||||
| 
 | ||||
| import java.util.function.Function; | ||||
| 
 | ||||
| import org.springframework.beans.factory.config.ConfigurableBeanFactory; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.ComponentScan; | ||||
| @ -45,19 +42,4 @@ public class AppConfig { | ||||
|         return new SingletonObjectFactoryBean(); | ||||
|     } | ||||
|      | ||||
|     @Bean | ||||
|     public Function<String, PrototypeBean> beanFactory() { | ||||
|         return name -> prototypeBeanWithParam(name); | ||||
|     }  | ||||
| 
 | ||||
|     @Bean | ||||
|     @Scope(value = "prototype") | ||||
|     public PrototypeBean prototypeBeanWithParam(String name) { | ||||
|        return new PrototypeBean(name); | ||||
|     } | ||||
|      | ||||
|     @Bean | ||||
|     public SingletonFunctionBean singletonFunctionBean() { | ||||
|         return new SingletonFunctionBean(); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,32 @@ | ||||
| package com.baeldung.scope; | ||||
| 
 | ||||
| import java.util.function.Function; | ||||
| 
 | ||||
| import org.springframework.beans.factory.annotation.Qualifier; | ||||
| import org.springframework.context.annotation.Bean; | ||||
| import org.springframework.context.annotation.Configuration; | ||||
| import org.springframework.context.annotation.Scope; | ||||
| 
 | ||||
| import com.baeldung.scope.prototype.PrototypeBean; | ||||
| import com.baeldung.scope.singletone.SingletonFunctionBean; | ||||
| 
 | ||||
| @Configuration | ||||
| public class AppConfigFunctionBean { | ||||
| 
 | ||||
|     @Bean | ||||
|     public Function<String, PrototypeBean> beanFactory() { | ||||
|         return name -> prototypeBeanWithParam(name); | ||||
|     }  | ||||
| 
 | ||||
|     @Bean | ||||
|     @Scope(value = "prototype") | ||||
|     public PrototypeBean prototypeBeanWithParam(String name) { | ||||
|        return new PrototypeBean(name); | ||||
|     } | ||||
|      | ||||
|     @Bean | ||||
|     public SingletonFunctionBean singletonFunctionBean() { | ||||
|         return new SingletonFunctionBean(); | ||||
|     } | ||||
|      | ||||
| } | ||||
| @ -60,19 +60,4 @@ public class PrototypeBeanInjectionIntegrationTest { | ||||
|         Assert.assertTrue("New instance expected", firstInstance != secondInstance); | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     @Test | ||||
|     public void givenPrototypeInjection_WhenFunction_ThenNewInstanceReturn() { | ||||
| 
 | ||||
|         AbstractApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); | ||||
| 
 | ||||
|         SingletonFunctionBean firstContext = context.getBean(SingletonFunctionBean.class); | ||||
|         SingletonFunctionBean secondContext = context.getBean(SingletonFunctionBean.class); | ||||
| 
 | ||||
|         PrototypeBean firstInstance = firstContext.getPrototypeInstance("instance1"); | ||||
|         PrototypeBean secondInstance = secondContext.getPrototypeInstance("instance2"); | ||||
| 
 | ||||
|         Assert.assertTrue("New instance expected", firstInstance != secondInstance); | ||||
|     } | ||||
|      | ||||
| } | ||||
|  | ||||
| @ -0,0 +1,35 @@ | ||||
| package com.baeldung.scope; | ||||
| 
 | ||||
| import org.junit.Assert; | ||||
| import org.junit.Test; | ||||
| import org.junit.runner.RunWith; | ||||
| import org.springframework.context.annotation.AnnotationConfigApplicationContext; | ||||
| import org.springframework.context.support.AbstractApplicationContext; | ||||
| import org.springframework.test.context.ContextConfiguration; | ||||
| import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; | ||||
| import org.springframework.test.context.support.AnnotationConfigContextLoader; | ||||
| 
 | ||||
| import com.baeldung.factorybean.FactoryBeanAppConfig; | ||||
| import com.baeldung.scope.prototype.PrototypeBean; | ||||
| import com.baeldung.scope.singletone.SingletonFunctionBean; | ||||
| 
 | ||||
| @RunWith(SpringJUnit4ClassRunner.class) | ||||
| @ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = FactoryBeanAppConfig.class) | ||||
| public class PrototypeFunctionBeanIntegrationTest { | ||||
| 
 | ||||
| 
 | ||||
|     @Test | ||||
|     public void givenPrototypeInjection_WhenFunction_ThenNewInstanceReturn() { | ||||
| 
 | ||||
|         AbstractApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); | ||||
| 
 | ||||
|         SingletonFunctionBean firstContext = context.getBean(SingletonFunctionBean.class); | ||||
|         SingletonFunctionBean secondContext = context.getBean(SingletonFunctionBean.class); | ||||
| 
 | ||||
|         PrototypeBean firstInstance = firstContext.getPrototypeInstance("instance1"); | ||||
|         PrototypeBean secondInstance = secondContext.getPrototypeInstance("instance2"); | ||||
| 
 | ||||
|         Assert.assertTrue("New instance expected", firstInstance != secondInstance); | ||||
|     } | ||||
|      | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user