博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring重温(四)--Spring自动组件扫描
阅读量:4613 次
发布时间:2019-06-09

本文共 1391 字,大约阅读时间需要 4 分钟。

通常情况下,声明所有的Bean类或组件的XML bean配置文件,这样Spring容器可以检测并注册Bean类或组件。 其实,Spring是能够自动扫描,检测和预定义的项目包并实例化bean,不再有繁琐的Bean类声明在XML文件中,这就是我接下来要描述的自动组件装配:

       a.根据以下的4种类型的组件自动扫描注释类型去标识当前类是一个自动扫描组件。

  • @Component – 指示自动扫描组件。
  • @Repository – 表示在持久层DAO组件。
  • @Service – 表示在业务层服务组件。
  • @Controller – 表示在表示层控制器组件。

      注意:无论dao层、service层、控制层都可以用@Component去注解,效果和分别用@Repository、@Service、@Controller一样,我们平常在开发过程中之所以分别注释,只是为了增加代码的可读性。

b.AplicatinContext.xml中需加入下面一行配置,这意味着,在 Spring 中启用自动扫描功能。base-package 是指明存储组件,Spring将扫描该文件夹,并找出Bean(注解为@Component)并注册到Spring 容器:  
c.我们平时会配合@Autowired将被此标签注解的类装配到当前类中,如:
package com.yiibai.customer.services;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.yiibai.customer.dao.CustomerDAO;@Servicepublic class CustomerService {    @Autowired    CustomerDAO customerDAO;    @Override    public String toString() {        return "CustomerService [customerDAO=" + customerDAO + "]";    }        }

 

总结:在我们于Spring配置文件中加入<context:component-scan base-package="**.**.**" />的配置,并通过@Repository、@Service、@Controller、@Component等标签进行注解后,Spring能够自动扫描,检测和预定义的项目包并实例化bean。我们在项目的开发中,配合@Autowired 注解通过setter方法、构造函数或字段即可自动装配Bean。注意:

欲开启@Autowired 注解,需要加入<context:annotation-config />在bean配置文件中,或者加入

<bean  class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

转载于:https://www.cnblogs.com/hedongfei/p/7901032.html

你可能感兴趣的文章
3.Python基础 序列sequence
查看>>
Chapter 4 Syntax Analysis
查看>>
nginx的配置:目的是使用nginx反向代理后,应用程序获取用户真实ip
查看>>
3、变量+运算符+Scanner
查看>>
10、数组、二维数组
查看>>
eclipse查看源码的配置
查看>>
mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同
查看>>
针对发送网络附件的java方法(使用Apache的jar包调用)
查看>>
‘--’之后的所有字符串,正则怎么写
查看>>
sql把一个字段中的特定字符替换成其他字符
查看>>
SQLServer触发器的使用
查看>>
通过AI识图判断图片是否为小票
查看>>
微信开发者工具常用快捷键
查看>>
Linux——静态库和动态库的生成
查看>>
Ulfius交叉编译——搭建http服务器端
查看>>
Linux——进度条实现
查看>>
Linux——定时器与计时器
查看>>
Linux——makefile编写
查看>>
vi/vim使用
查看>>
C/C++——指针
查看>>