Merge pull request #7323 from rozagerardo/rozagerardo/BAEL-10914_Create-spring-mvc-basics-from-spring-mvc-java
[BAEL-10914] create spring mvc basics from spring mvc java - part 2
This commit is contained in:
@@ -24,3 +24,4 @@
|
||||
- [What is a Spring Bean?](https://www.baeldung.com/spring-bean)
|
||||
- [Spring PostConstruct and PreDestroy Annotations](https://www.baeldung.com/spring-postconstruct-predestroy)
|
||||
- [Guice vs Spring – Dependency Injection](https://www.baeldung.com/guice-spring-dependency-injection)
|
||||
- [Circular Dependencies in Spring](http://www.baeldung.com/circular-dependencies-in-spring)
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.baeldung.circulardependency;
|
||||
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class CircularDependencyA implements ApplicationContextAware, InitializingBean {
|
||||
|
||||
private CircularDependencyB circB;
|
||||
|
||||
private ApplicationContext context;
|
||||
|
||||
public CircularDependencyB getCircB() {
|
||||
return circB;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
circB = context.getBean(CircularDependencyB.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setApplicationContext(final ApplicationContext ctx) throws BeansException {
|
||||
context = ctx;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.circulardependency;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class CircularDependencyB {
|
||||
|
||||
private CircularDependencyA circA;
|
||||
|
||||
private String message = "Hi!";
|
||||
|
||||
@Autowired
|
||||
public void setCircA(final CircularDependencyA circA) {
|
||||
this.circA = circA;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.baeldung.circulardependency;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = { TestConfig.class })
|
||||
public class CircularDependencyIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
ApplicationContext context;
|
||||
|
||||
@Bean
|
||||
public CircularDependencyA getCircularDependencyA() {
|
||||
return new CircularDependencyA();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public CircularDependencyB getCircularDependencyB() {
|
||||
return new CircularDependencyB();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenCircularDependency_whenSetterInjection_thenItWorks() {
|
||||
final CircularDependencyA circA = context.getBean(CircularDependencyA.class);
|
||||
|
||||
Assert.assertEquals("Hi!", circA.getCircB().getMessage());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.baeldung.circulardependency;
|
||||
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan(basePackages = { "com.baeldung.circulardependency" })
|
||||
public class TestConfig {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user