​ Spring容器提供了三种装配bean的方式,所谓装配就是指将bean配置在spring容器中,并能够在类与类之间提供依赖关系。

一、隐式Bean发现机制和自动装配

​ Spring从两个角度来实现自动化装配:组件扫描(Spring自动发现应用中上下文所需要的创建的Bean),自动装配(Spring自动满足Bean之间的依赖)

  • 使用Component注解将普通类配置成Bean

    @Component用来泛指组件,用于不好区分或者明确归类的Java类,相比之下,使用@Controller,@Service,@Respository等注解声明为bean可以明确的表示组件的归类

    @Component
    public class Waiter {public void service(String name){System.out.println("service to " + name);}
    }
    
  • 使用@Autowired(自动注入)使Spring满足Bean的依赖

    @Autowired是由Spring提供的注解,同样的,你还可以通过使用Java本身提供的注解@Resource实现依赖注入

    @Component
    public class User {@Autowiredprivate Article article;public void action() {article.action();}
    }
    
  • 使用@Component注解扫描组件

    默认是扫描当前包以及子包。如果想设置其它包或者多个包,可以通过设置该注解的basePackages。

    @Configuration
    @ComponentScan("包名路径")
    public class ApplicationConfig {}
    
二、基于Java的Bean装配

​ 我们可以使用@Configuration注解将类声明为一个配置类,再使用@Bean注解将方法返回的实例对象添加到容器的上下文中

@Bean注解的bean的ID默认是方法名,如果要指定名称,可以通过name属性来设置

@Configuration
@ComponentScan("com.jimisun")
public class WebConfig {@Beanpublic User user() {return new User(myArticle());}@Beanpublic MyArticle myArticle() {return new MyArticle();}}
三、基于XML的Bean装配

​ 不使用注解时,可以在spring的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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"><bean class="com.jimisun.spring.example.User" id="user"><constructor-arg ref="myArticle"/></bean><bean class="com.jimisun.spring.example.MyArticle" id="myArticle"></bean></beans>
  • 上述配置方案都不是互斥的,你甚至可以将JavaConfig、自动装配、xml配置混合在一起。

Spring配置Bean的几种方式相关推荐

  1. Spring创建Bean的3种方式

    1. Spring创建Bean的三种方式 1. 调用构造器(因为常用就不讲) 2. 调用静态工厂方法 3. 调用实例工厂方法 2. 使用静态工厂方法 1.此时<bean.../>元素要指定 ...

  2. spring配置属性的两种方式

    spring配置属性有两种方式,第一种方式通过context命名空间中的property-placeholder标签 <context:property-placeholder location ...

  3. Spring框架学习教程,详解Spring注入bean的几种方式

    首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入. 依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖. Sprin ...

  4. Spring创建Bean的三种方式的使用和区别

    在学习Spring的时候,发现Spring的IOC(控制反转)为我们提供的三种创建Bean的方式. 1.Spring创建Bean的三种方式 这里采用XML配置,分别演示三种创建Bean的方式和代码. ...

  5. spring 注入bean的两种方式

    我们都知道,使用spring框架时,不用再使用new来实例化对象了,直接可以通过spring容器来注入即可. 而注入bean有两种方式: 一种是通过XML来配置的,分别有属性注入.构造函数注入和工厂方 ...

  6. Spring配置事务的五种方式

    Java事务的类型有三种: JDBC事务. 可以将多个 SQL 语句结合到一个事务中.JDBC 事务的一个缺点是事务的范围局限于一个数据库连接.一个 JDBC 事务不能跨越多个数据库 JTA(Java ...

  7. Spring 创建Bean的三种方式

    创建Bean的三种方式 第一种方式:使用默认构造函数创建. 在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时.采用的就是默认构造函数创建bean对象,此 ...

  8. 记下来 Spring 装配 Bean 的三种方式

    ps:拿笔记一下,面试可能会考.依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 前言 什么是依赖注入呢?也可以称为控制反转,简单的来说,一 ...

  9. Spring : Spring定义Bean的两种方式:lt; bean gt;和@Bean

    1.美图 2.概述 Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用. 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean. ...

最新文章

  1. Spring Boot 2 快速教程:WebFlux 快速入门(二)
  2. Windows Phone7天初学(4):数据绑定
  3. 浅谈Redis和Hbase
  4. 修改系统density适配
  5. python中if not是什么意思,python if not不同应用有什么区别,pythonifnot区别,python 中 "if...
  6. python学习笔记(三)—— 序列类型及方法(列表、元组、字符串)
  7. springboot学习笔记(六)
  8. 轻量级java web实践-6(框架源码-4)
  9. 解决kali linux找不到更新的问题
  10. CDH中hue使用oozie调度的文件注意事项
  11. oracle全角括号忽略,Oracle中SQL查询语句日文不区分全角/半角
  12. 最大流问题之FF算法与EK算法
  13. html 显示闹钟,闹钟设置.html
  14. JavaScript 排序,不只是冒泡
  15. 人体疲劳程度检测,生理信号处理
  16. 企业微信员工能私加客户吗?员工私自联系客户企业是否知道?
  17. 一文了解CDN应用加速
  18. 阿里P6晋升到P7是一个坎吗? P7 晋升总结
  19. 摄像头8mm可以看多远_折叠屏、透明屏、卷曲屏、拼接屏、屏下摄像头...未来屏显的先机都在这里...
  20. asp毕业设计——基于asp+access的在线人才招聘网设计与实现(毕业论文+程序源码)——人才招聘网

热门文章

  1. 游卡通服务器自动重启,我的世界服务器
  2. ​分散式污水处理站远程在线监测
  3. Avalon总线(一)Avalon-MM Signals
  4. java VisualVm远程连接
  5. 个人成长的 15 种能力
  6. 第一次使用IDEA提交项目到码云
  7. SpringCloud使用Consul作为配置中心
  8. oracle使用hint启用并行,oracle hint (体系)了解
  9. 团建游戏----做一只小船去漂流
  10. 三级下拉菜单 Javascript(通用版)