@ComponentScan注解

Posted Rose✿留白ق೨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@ComponentScan注解相关的知识,希望对你有一定的参考价值。

package config;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.springframework.context.annotation.*;

import javax.sql.DataSource;
import java.util.Date;

/**
 * 该类是一个配置类,它的作用和bean.xml是一样的
 * spring中的新注解:
 * Configuration:
 * 作用:指定当前类是一个配置类。
 * 细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
 * ComponentScan:
 * 作用:用于通过注解指定spring在创建容器时要扫描的包。
 * 属性:
 * value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。
 * 我们使用此注解就等同于在xmL中配置了 :
 * <context:component-scan base-package="com.itheima"></context:component-scan>
 * Bean
 * 作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中。
 * 属性:
 * name:用于指定bean的id。当不写时,默认值是当前方法的名称。
 * 细节:
 * 当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。
 * 查找的方式和Autowired注解的作用是一样的。
 * Import
 * 作用:用于导入其他的配置类
 * 属性:
 * value:用于指定其他配置类的字节码。
 * 当我们使用Import的注解之后,有Import注解的类就是父配置类,而导入的都是子配置类
 * <p>
 * PropertySource
 * 作用:用于指定properties文件的位置
 * 属性:
 * value:指定文件的名称和路径。
 * 关键字: classpath, 表示类路径下
 */
@Configuration
@ComponentScan("com.itheima")   //@ComponentScan(basePackages = "com.itheima")
@Import(JdbcConfig.class)
@PropertySource("classpath:jdbcConfig.properties")
public class SpringConfiguration {

}



 * ComponentScan:
 * 作用:用于通过注解指定spring在创建容器时要扫描的包。
 * 属性:
 * value:它和basePackages的作用是一样的,都是用于指定创建容器时要扫描的包。
 * 我们使用此注解就等同于在xmL中配置了 :
 * <context:component-scan base-package="com.itheima"></context:component-scan>

以上是关于@ComponentScan注解的主要内容,如果未能解决你的问题,请参考以下文章

注解@componentscan

一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持组件注解限制

@ComponentScan注解**

Spring注解详解:@ComponentScan自动扫描组件使用

如何使用@ComponentScan 注解扫描多个路径?

ComponentScan注解