ole7官方网站
  咨询电话:13521181397

ole777备用客服

Spring框架装配Bean的三种方式

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

 

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

Spring的三种装配机制

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

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

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

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

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

@ComponentScan("com.jimisun.controller")

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

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

@Componentpublic class User { @Autowired private Article article; public void action() { article.action(); }}注意:示例中使@Component将Java类声明成SpringBean,除了这一注解你还可以使用@Controller,@Service,@Repository等注解... 同样@Autowired也可使用其他注解来代替,这里为了简明介绍不再陈述。 基于Java的Bean装配基于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开发之上帝之眼系列教程其他文章

Java开发之上帝之眼系列教程前言和章节目录汇总重新来认识你的老朋友Spring框架

勘误&感谢

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