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.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.10.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.10.xsdhttp://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。

转载于:https://www.cnblogs.com/zhuxiong/p/7647605.html

Spring笔记——装配Bean相关推荐

  1. Spring之装配Bean(一)

    Spring中装配bean的三种主要方式 1.隐式的bean发现机制和自动化装配 组件扫描( component scanning) : Spring会自动发现应用上下文中所创建的bean. 自动装配 ...

  2. spring(2)装配Bean

    [0]README 0)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  spring(2)装配Bean 的相关知识: 1)在sprin ...

  3. spring三: 装配bean( 在xml中进行显式配置, 在java中进行显式配置)

    ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class); SpringCon ...

  4. spring二:装配bean(自动装配)

    创建应用对象之间协作关系的行为通常称为装配(wiring),这就是依赖注入(DI)的本质. Spring提供了三种主要的装配机制: 1. 在xml中进行显式配置.  2. 在java中进行显式配置. ...

  5. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire

    创建应用对象之间协作关系的行为称为装配(wiring),这也是依赖注入的本质. Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,而开发者需要告诉Spring需要创建哪些 ...

  6. Spring自动装配Bean

    除了使用 XML 和 Annotation 的方式装配 Bean 以外,还有一种常用的装配方式--自动装配.自动装配就是指 Spring 容器可以自动装配(autowire)相互协作的 Bean 之间 ...

  7. Spring基础—装配bean(一)

    在讲解Spring配置beans之前首先想一下一部成功的电影都需要哪些成员参与.首先,最重要的是要有导演.编剧.演员和投资人:其次,还有没那么明显的成员,音乐人.特技演员和艺术指导:此外,还有其他很重 ...

  8. Spring 自动化装配Bean

    声明一张cd的接口: public interface CompactDisc {public abstract void play(); } 实现cd接口: @Component("Sgt ...

  9. spring自动装配Bean的五种方式

    no:默认方式,手动装配方式,需要通过ref设定bean的依赖关系 byName:根据bean的名字进行装配,当一个bean的名称和其他bean的属性一致,则自动装配 byType:根据bean的类型 ...

最新文章

  1. oracle创建表分区表,oracle创建分区表
  2. 程序员面试题精选100题(14)-圆圈中最后剩下的数字[算法]
  3. Java下载文件的几种方式
  4. 药学专业报计算机一级有用吗,全网友泣泪劝阻!高考结束之后,什么专业千万不能报?...
  5. javascript 参数检验(二):参数检查工具的完善
  6. 学习日记之单例模式和Effective C++
  7. 实现Runnable接口和继承Thread类之间的区别
  8. java学习(三)内部类
  9. 笛卡尔心形函数表达式_笛卡尔爱心函数表达式 笛卡尔形式
  10. Python数模笔记-NetworkX(5)关键路径法
  11. 双六(挑战程序设计竞赛)
  12. Towards Enhancing Fine-grained Details for Image Matting
  13. cesium添加高德影像图
  14. WPF基础到企业应用系列8——依赖属性之“风云再起”
  15. BZOJ5077: [Ctsc2016]时空旅行(线段树+凸包)
  16. revit出图建模【尺寸定位标注】功能
  17. 《图形图像处理》— 使用matlab对图像进行二值化和灰度化处理
  18. 当前日期的周一,下周日期,下月日期;批次号生成
  19. 银行家算法——C++实现 [ 开源代码 + 详细解析 ]
  20. 【狂神说】CSS学习笔记

热门文章

  1. matlab对常见特殊数据文件读取:edf、cnf、bdf、tdms、e
  2. mysql数据表关联操作步骤_MySQL数据库(三)—— 表相关操作(二)之约束条件、关联关系、复制表...
  3. 打交通赔偿官司需要那些证据?
  4. 支持360打倒无耻的tx
  5. 什么是事件代理(事件委托) 有什么好处
  6. mupdf PDF查看器使用教程
  7. 武侠乂怎么修改服务器,武侠乂操作技巧 武侠乂手游怎么操作
  8. (原创)详解Quartus导出网表文件:.qxp和.vqm
  9. 华硕电脑开启UEFI启动
  10. remove和removeat之间的区别?