1. 程式人生 > >@Configuration、@Bean以及Bean註冊的多種方式

@Configuration、@Bean以及Bean註冊的多種方式

Bean的定義:

java方式:

@Configuration和@Bean的配合使用

xml方式:

<beans><bean><bean><beans>
僅有上述步驟,只是完成了Bean的定義,Bean還沒有被真正註冊到Spring容器中。


Bean的註冊:

java方式:

通過AnnotationConfigApplicationContext類實現,示例程式碼如下:

@Configuration
public class AppContext {
    @Bean
    public Course course
() { Course course = new Course(); course.setModule(module()); return course; } @Bean public Module module() { Module module = new Module(); module.setAssignment(assignment()); return module; } @Bean public Assignment assignment
() { return new Assignment(); } }
public static void main(String[] args) {
  ApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class);
  Course course = ctx.getBean(Course.class);
  course.getName();
}

xml方式:

通過ClassPathXmlApplicationContext類實現,示例程式碼如下:

<
beans
>
<bean id="course" class="demo.Course"> <property name="module" ref="module"/> </bean> <bean id="module" class="demo.Module"> <property name="assignment" ref="assignment"/> </bean> <bean id="assignment" class="demo.Assignment" /> </beans>
public static void main(String[] args) {
	ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/*.xml");
	Module module = (Module)context.getBean("module");
}

spring mvc方式:

spring web中,預設上下文是XmlWebApplicationContext,因此您永遠不必在您的 web.xml 檔案中顯式指定這個上下文類。

參考:
https://www.ibm.com/developerworks/cn/webservices/ws-springjava/index.html