zoukankan      html  css  js  c++  java
  • Spring笔记——装配Bean

    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
    @ComponentScan
    public 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。

  • 相关阅读:
    RAC连接时的2种方式Connect Time Failver和taf
    ElasticSearch Root身份运行
    sql in按照指定顺序排序
    JAVA字符串格式化-String.format()的使用
    java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie
    全文搜索引擎 Elasticsearch 入门教程
    监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
    ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行
    SQL之case when then用法
    MySQL表的四种分区类型
  • 原文地址:https://www.cnblogs.com/zhuxiong/p/7647605.html
Copyright © 2011-2022 走看看