1. 程式人生 > >Spring裝配bean的三種方式

Spring裝配bean的三種方式

spring裝配bean有顯式和隱式兩種:

         1.顯式的配置:

                  1).通過javaConfig來配置(@Configuration和@Bean結合)

@Configuration
public class BeanConfig {

  
    @Bean
    public A a() {

        return new A();
    }

    @Bean
    public B b() {

        B bb = new B();
        bb.setA(a());
        return bb;
    }
}


                  2).通過xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--使用bean標籤去申明bean-->
    <bean id="waiter" class="xyz.mrwood.study.spring.example.Waiter" />
    <!--可以保用p標籤來注入依賴的bean-->
    <bean id="store" class="xyz.mrwood.study.spring.example.Store" p:waiter-ref="waiter" />

</beans>


         2.隱式的配置:

                  1).通過掃描包,自動裝配

java類(其中Configuration可以由Service和Controller代替):

@Configuration
@ComponentScan
public class ApplicationConfig {
}
XML:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="xyz.mrwood.study.spring.example" />

</beans>