Spring容器装配Bean的三种方式

欢迎查看Java开发之上帝之眼系列教程,若是您正在为Java后端庞大的体系所困扰,若是您正在为各类繁出不穷的技术和各类框架所迷茫,那么本系列文章将带您窥探Java庞大的体系。本系列教程但愿您能站在上帝的角度去观察(了解)Java体系。使Java的各类后端技术在你心中模块化;让你在工做中能将Java各个技术了然于心;可以即插即用。本章咱们来一块儿了解Spring专栏—SpringBean装配。html

 

本章咱们一块儿来探讨SpringBean的装配,所谓 装配“ 就是值将Bean安装Bean容器中并进行依赖关系配置,稍微提一下IOC控制反转就是指的安装这一过程当中,而DI依赖指的是配置这一过程。本章咱们就Spring应用中如何进行装配Bean进行讲解;如自动化装配Java配置装配XML配置装配方式进行介绍,但本章并不会介绍Spring项目全局配置方案,咱们会在下一章中单独介绍Spring基于Java的全局配置和基于XML的全局配置的两种方案。本章提供三个完整源码测试,Github源码下载地址java

Spring的三种装配机制

  1. 隐式的Bean发现机制和自动装配
  2. 在Java中进行装配
  3. 在XML中进行装配

值得一提的是,咱们在项目中应该优先实用隐式的Bean发现机制和自动装配其次使用在Java中进行装配最后再使用在XML中进行装配git

隐式的Bean发现机制和自动装配隐式Bean发现和自动装配测试源码

Spring从两个角度来实现自动化装配;组件扫描(Spring自动发现应用中上下文所须要的建立的Bean),自动装配(Spring自动知足Bean之间的依赖)github

  • 使用@Component将普通Java类配置成SpringBean
  • 使用@Autowired(自动装配)使Spring知足Bean的依赖
  • 配置组件扫描包(组件扫描)
    • 在Java类中配置组件扫描

@ComponentScan("com.jimisun.controller")spring

    • 在XML配置文件配置组件扫描

<context:component-scan base-package="com.jimisun.controller,com.jimisun.service"/>后端

@Component
public class User {

    @Autowired private Article article;

    public void action() {
        article.action();
    }
}
注意:示例中使@Component将Java类声明成SpringBean,除了这一注解你还可使用@Controller,@Service,@Repository等注解... 一样@Autowired也可以使用其余注解来代替,这里为了简明介绍再也不陈述。
 
基于Java的Bean装配

一样咱们能够再Spring的Java配置类中对SpringBean进行配置框架

  • 使用 @Bean 注解将方法返回的实例对象添加到上下文中
  • @Bean返回的实例对象中能够经过构造器注入传入相关依赖
@Configuration
@ComponentScan("com.jimisun")
public class WebConfig {

    @Bean public User user() {
        return new User(myArticle());
    }

    @Bean public MyArticle myArticle() {
        return new MyArticle();
    }

}
注意:若是你没有接触过基于java配置Bean的装配的话,不须要着急,这里只须要你理解SpringBean装配的全局信息,下章咱们会更为详细的介绍。
 

基于XML的Bean装配基于XML装配Bean完整源码 模块化

对于在XML中进行配置可能使咱们常常使用的,在之前的Spring版本中几乎咱们都是使用XML进行配置Spring,下面咱们简单来看一下。
<?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>
注意:在实际应用中如何不想被海量的<bean>标签埋没前,你应当优先使用隐式的Bean发现机制和自动装配和在Java中进行装配,最后再选择使用在XML中配置。
 
最后值得一提的是在实际项目中咱们一般都会选择组合使用
  • 隐式的Bean发现机制和Java中进行装配进行组合
  • 隐式的Bean发现机制和XML配置进行组合
这样便于咱们更方便的配置Spring项目,下一章咱们会针对全局的Spring项目的配置进行介绍。

Java开发之上帝之眼系列教程其余文章


勘误&感谢

  本系列文章资料来源不少出自于互联网和在下自己的看法,受限于我的技术能力水平和其余相关知识的限制,相关看法错误或者资料引用错误请各位帮助留言校订!引用资料多来自于互联网,在下在引用前会遵循各位前辈或者博主的引用说明表示感谢,但互联网资料可能是转发再转发或存在遗漏请原做者内信联系指正。

相关文章
相关标签/搜索