您现在的位置是:首页 > 文章详情

第四章:Spring框架装配Bean的三种方式(基础)

日期:2018-10-04点击:368

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

本章我们一起来探讨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之间的依赖)

  1. 使用@Component将普通Java类配置成SpringBean
  2. 使用@Autowired(自动装配)使Spring满足Bean的依赖
  3. 配置组件扫描包(组件扫描)
    在Java类中配置组件扫描
@ComponentScan("com.jimisun.controller")

在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装配

基于Java装配Bean完整源码
同样我们可以再Spring的Java配置类中对SpringBean进行配置

  1. 使用 @Bean 注解将方法返回的实例对象添加到上下文中
  2. @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发现机制和自动装配和在Java中进行装配,最后再选择使用在XML中配置。

最后值得一提的是在实际项目中我们通常都会选择组合使用

  • 隐式的Bean发现机制和Java中进行装配进行组合
  • 隐式的Bean发现机制和XML配置进行组合

这样便于我们更方便的配置Spring项目,下一章我们会针对全局的Spring项目的配置进行介绍。

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

勘误&感谢

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

原文链接:https://yq.aliyun.com/articles/647404
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章