当前位置: 首页 > 编程笔记 >

Spring组件自动扫描详解及实例代码

艾仲渊
2023-03-14
本文向大家介绍Spring组件自动扫描详解及实例代码,包括了Spring组件自动扫描详解及实例代码的使用技巧和注意事项,需要的朋友参考一下

Spring组件自动扫描详解及实例代码

问题描述

一个系统往往有成千上万的组件,如果需要手动将所有组件都纳入spring容器中管理,是一个浩大的工程。

解决方案

Spring 提供组件扫描(component scanning)功能。它能从classpath里自动扫描、侦测和实例化具有特定注解的组件。基本的注解是@Component,它标识一个受Spring管理的组件。其他特定的注解有@Repository、@Service和@Controller,它们分别标识了持久层、服务处和表现层的组件。

实现方法

User.Java

package com.zzj.bean; 
 
import javax.annotation.Resource; 
 
import org.springframework.stereotype.Component; 
@Component 
public class User { 
  @Resource 
  private Car car; 
 
  public void startCar(){ 
    car.start(); 
  } 
} 

Car.java

package com.zzj.bean; 
 
import org.springframework.stereotype.Component; 
 
@Component 
public class Car { 
  public void start(){ 
    System.out.println("starting car..."); 
  } 
} 

XML配置文件

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
      http://www.springframework.org/schema/beans/spring-beans.xsd 
      http://www.springframework.org/schema/context  
     http://www.springframework.org/schema/context/spring-context.xsd"> 
      
    <context:component-scan base-package="com.zzj.bean"/> 
</beans> 

注意:当开启Spring的自动扫描功能以后,自动注入的功能也开启了。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍详解spring自动扫描包,包括了详解spring自动扫描包的使用技巧和注意事项,需要的朋友参考一下 配置文件 前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些组件采用XML的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。 Spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Co

  • 我正在编写一个新的SpringBoot项目,其中我的根包名是“com.example”。在我的gradle配置中,我添加了一个第三方库的依赖项,它的根包名为“org.base”。现在,这个库中有带有@Component注释的类,我想在代码中使用@Autowired 在我的配置类中,我也扫描第三方库的基本包。 当我运行应用程序时,spring无法从这个库中找到/创建bean,我得到了一个bean n

  • 本文向大家介绍React-Native TextInput组件详解及实例代码,包括了React-Native TextInput组件详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 同时适配Android和IOS 代码注释比较详细 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 我对spring boot相当陌生,正在尝试使用Java持久性API hibernate mySQL持久性层构建spring boot应用程序。但当我试图使用entityManager获取所有记录时。createNamedQuery(“从学生s中选择*”,学生.class)。getResultList()它给了我以下异常。 Java语言lang.IllegalArgumentException:未

  • 本文向大家介绍iOS 二维码生成及扫码详解及实例代码,包括了iOS 二维码生成及扫码详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 iOS二维码生成及扫码      现在越来越多的应用加入二维码相关的业务,在iOS开发市场上很多开发人员都在使用第三方的扫码与生成二维码的控件,个人认为此类的第三方控件识别度不高。最近正好整理新框架的事情,研究了一下。具体代码如下  生成二维码代码  扫描二维

  • 本文向大家介绍AngularJS bootstrap启动详解及实例代码,包括了AngularJS bootstrap启动详解及实例代码的使用技巧和注意事项,需要的朋友参考一下 对于一般的使用者来说,AngularJS的ng-app都是手动绑定到某个dom元素。但是在一些应用中,这样就显得很不方便了。 绑定初始化 通过绑定来进行angular的初始化,会把js代码侵入到html中,但是对于新手使用来