siye@r480:~/svlution/workspace/springcore4322$ tree src/
src/
├── main
│ ├── java
│ │ ├── log4j.properties
│ │ └── ocn
│ │ └── site
│ │ └── springioc
│ │ └── domain
│ │ ├── PersonInit.java
│ │ ├── Person.java
│ │ └── User.java
│ └── resources
└── test
├── java
│ └── ocn
│ └── site
│ └── springioc
│ └── domain
│ └── Runtest.java
└── resources
└── config
└── application.xml
15 directories, 6 files
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-context</ artifactId>
< version> 4.3.22.RELEASE</ version>
</ dependency>
< dependency>
< groupId> log4j</ groupId>
< artifactId> log4j</ artifactId>
< version> 1.2.17</ version>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.12</ version>
< scope> test</ scope>
</ dependency>
< dependency>
< groupId> org.springframework</ groupId>
< artifactId> spring-test</ artifactId>
< version> 4.3.22.RELEASE</ version>
< scope> test</ scope>
</ dependency>
package ocn. site. springioc. domain;
public class Person {
private int id;
public int getId ( ) {
return id;
}
public void setId ( int id) {
this . id = id;
}
@Override
public String toString ( ) {
return "Person [id=" + id + "]" ;
}
}
package ocn. site. springioc. domain;
public class PersonInit {
private Person person;
public Person getPerson ( ) {
return person;
}
public void setPerson ( Person person) {
this . person = person;
}
@Override
public String toString ( ) {
return "PersonInit [person=" + person + "]" ;
}
}
package ocn. site. springioc. domain;
public class User {
private Person person;
public Person getPerson ( ) {
return person;
}
public void setPerson ( Person person) {
this . person = person;
}
@Override
public String toString ( ) {
return "User [person=" + person + "]" ;
}
}
<?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.xsd" >
< bean id = " person" class = " ocn.site.springioc.domain.Person" > </ bean>
< bean id = " personInit" class = " ocn.site.springioc.domain.PersonInit" lazy-init = " true" >
< property name = " person" >
< ref bean = " person" />
</ property>
< property name = " person.id" value = " #{34}" > </ property>
</ bean>
< bean class = " ocn.site.springioc.domain.User" depends-on = " personInit" >
< property name = " person" >
< ref bean = " person" />
</ property>
</ bean>
</ beans>
package ocn. site. springioc. domain;
import org. apache. log4j. Logger;
import org. junit. Test;
import org. junit. runner. RunWith;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. test. context. ContextConfiguration;
import org. springframework. test. context. junit4. SpringRunner;
@RunWith ( SpringRunner. class )
@ContextConfiguration ( "classpath:config/application.xml" )
public class Runtest {
private final Logger logger = Logger. getLogger ( this . getClass ( ) ) ;
private @Autowired User user;
@Test
public void run ( ) throws Exception {
logger. info ( user. getPerson ( ) ) ;
}
}
19-09-08 11:21:23 org.springframework.test.context.support.DefaultTestContextBootstrapper =====>>> Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
19-09-08 11:21:23 org.springframework.test.context.support.DefaultTestContextBootstrapper =====>>> Using TestExecutionListeners: [org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@4e04a765, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@783e6358, org.springframework.test.context.support.DirtiesContextTestExecutionListener@17550481]
19-09-08 11:21:23 org.springframework.beans.factory.xml.XmlBeanDefinitionReader =====>>> Loading XML bean definitions from class path resource [config/application.xml]
19-09-08 11:21:23 org.springframework.context.support.GenericApplicationContext =====>>> Refreshing org.springframework.context.support.GenericApplicationContext@2ef5e5e3: startup date [Sun Sep 08 11:21:23 CST 2019]; root of context hierarchy
19-09-08 11:21:23 ocn.site.springioc.domain.Runtest =====>>> Person [id=34]
19-09-08 11:21:23 org.springframework.context.support.GenericApplicationContext =====>>> Closing org.springframework.context.support.GenericApplicationContext@2ef5e5e3: startup date [Sun Sep 08 11:21:23 CST 2019]; root of context hierarchy