Spring學習筆記——裝配Bean

來源:互聯網
上載者:User

標籤:instance   sep   mysq   隱式   添加   classes   屬性   mysql   實現   

1、Spring配置的可選方案

  • 在XML中進行顯式配置。
  • Java中進行顯式配置。
  • 隱式的bean發現機制和自動裝配。 

2、自動化裝配bean

  Spring從兩個角度來實現自動化裝配:

  • 組件掃描(component scanning): Spring會自動探索應用上下文中所建立的bean。
  • 自動裝配(autowiring): Spring自動滿足bean之間的依賴 。

  2.1、建立可被發現的bean——@Component(在POJO實作類別上添加@Component註解);

  2.2、啟用組件掃描——@ComponentScan

  • 在java配置類上添加@ComponentScan註解啟用組件掃描
@Configuration@ComponentScanpublic class DemoConfig {}
  • 通過XML啟用組件掃描
<beans ... >
  <
context:component-scan base-package="" />
</beans>
  • 通過@Autowired註解實現自動裝配

  2.3、為組件掃描的bean命名

  • @Component("beanName");
  • @Named("beanName");

  2.4、設定組件掃描的基礎包

  • 如果是通過Java配置類進行配置的,預設配置類所在的包為基礎包;
  • 通過basePackages配置組件掃描的基礎包——@ComponentScan(basePackages={"xxx", "xxxx"});
  • 將其指定為包中包含的類或介面——@ComponentScan(basePackageClasses={xxx.class, xxxx.class});

  2.5、通過為bean添加註解實現自動裝配——@Autowired。@Autowired = @inject

  • 在屬性上使用@Autowired;
  • 在構造方法上使用@Autowired;
  • 在setter方法上使用@Autowired;
  • 在任何方法上使用@Autowired。

3、通過Java代碼裝配bean

  

@Configuration // 使用@Autowired聲明該類為配置類public class CDPlayerConfig {  @Bean // 預設情況下bean的ID與帶有@Bean註解的方法名相同
  public CompactDisc sgtPeppers() {
    return new SgtPeppers();
  }
  @Bean(name="beanName")
  public CompactDisc sgtPeppers2() {
    return new SgtPeppers();
  }
  @Bean
  public CDPlayer cdPlayer(
CompactDisc compactDisc) {
    return new CDPlayer(compactDisc);
  }
}

4、通過XML裝配bean

<?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:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.10.xsd        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.10.xsd        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.10.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.10.xsd">        <!-- 配置資料來源  -->    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>    </bean>    <!-- 掃描Mybatist設定檔  -->    <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactory">        <property name="dataSource" ref="dataSource" />        <property name="mapperLocations" value="classpath:mysql/*.xml"/>    </bean>    <!-- Mapper掃描配置   -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="com.zhux.user.dao"/>        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>    </bean></beans>

5、匯入和混合配置

  5.1、在JavaConfig中引用XML配置;

  5.2、在XML配置中引用JavaConfig。

Spring學習筆記——裝配Bean

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.