IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring实战系列(二)Bean装配 -> 正文阅读

[Java知识库]Spring实战系列(二)Bean装配

? ? ? ?Spring容器负责创建应用程序中的Bean,并通过DI(依赖注入)来协调这些对象之间的关系。创建应用组件之间协作的行为通常称为装配。在Spring中,对象无需自己创建或者查找与其所关联的其他对象。

spring装配方式

Spring容器负责创建bean,并通过DI来协调对象之间的依赖关系,对于开发而言,需要告诉Spring哪些bean需要创建并且如何将其装配在一起。Spring提供如下三种主要的装配方式:

  • XML中进行显式的配置
  • 在java中进行显式的配置
  • 隐式的进行bean发现机制以及自动装配

1. 自动化装配bean

? ? ?Spring从两个角度实现自动化装配:

  • ?组件扫描:Spring会自动发现应用上下文中所创建的bean
  • ?自动装配:Spring自动满足bean之间的依赖

? ?下面通过案例说明组件扫描和装配。

? ?接口:

package com.spring.demo;

/**
 * animal
 */
public interface Animal {
    /**
     * eat
     */
     void eat();
}

??Animal接口的实现类:

package com.spring.demo;


import org.springframework.stereotype.Component;

@Component
public class Cat implements Animal{

    @Override
    public void eat() {
      System.out.println(" cat is eating !");
    }
}

? 实现类中使用了@Component注解,表明该类会作为主键类,并告知spring要为这个类创建bean,不过,组件扫描默认是不启动的,需要显示的配置,并去寻找带有@Component注解的类,并创建bean。

? 可使用@ComponentScan注解开启扫描。当@ComponentScan没有配置参数的时候,默认扫当前配置类相同的包,因此Spring将会扫描这个包以及其子包,查找带有@ComponentScan注解的类。

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
public class AnimalConfig {

}

?@ComponentScan 也可用XML配置,等同于

<context:component-scan base-package = "com.test">

?下面使用junit进行单元测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AnimalConfig.class)
public class AnimalTest {
    
    @Autowired
    private Cat cat;

    @Test
    public void catNotBeNull(){
        assertNotNull(cat);
        cat.eat();
    }

}

这个bean会被注册进来。

AnimalTest 使用了spring的SpringJUnit4ClassRunner,以便在测试开始的时候自动创建spring的应用上下文,@RunWith就是一个运行器,让测试运行于Spring环境。@ContextConfiguration注解会告诉加载哪些注解,可以是类也可以是配置信息路径。

以上已测试完成组件扫描

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 10:36:15  更:2022-07-03 10:38:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:21:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码