diff options
Diffstat (limited to 'spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java')
| -rw-r--r-- | spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java new file mode 100644 index 0000000..1e613c6 --- /dev/null +++ b/spring-framework/04-basic-no-xml-java-configuration/src/main/java/com/example/spring/App.java @@ -0,0 +1,50 @@ +package com.example.spring; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class App { + + public static void main(String[] args) { + @SuppressWarnings("resource") + ApplicationContext ctx = new AnnotationConfigApplicationContext(App.class); + + MathsUser mathsUser = ctx.getBean(MathsUser.class); + + mathsUser.doTask(); + } + + @Bean + public Maths maths() { + Maths maths = new Maths(); + maths.setB(100); + + return maths; + } + + @Bean + public MathsUser mathsUser() { + MathsUser mathsUser = new MathsUser(); + + /* + * What would the maths() return? Would it be the Spring managed bean or what + * would be returned when the maths() method is directly invoked? + * + * @Bean can be used with classes annotated with @Component tool. + * + * In a class annotated with @Configuration, maths() return the Spring managed bean. + * + * In a class annotated with @Component, what is returned by maths() is not the + * Spring managed bean, but what would be returned when the maths() method is directly invoked. + * + * For more details, look at the 'Full @Configuration vs “lite” @Bean mode?' description + * found in the 'Core Technologies' section of the Spring Framework Reference documentation. + */ + mathsUser.setMaths(maths()); + + return mathsUser; + } +}
\ No newline at end of file |
