@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注解的主要内容,如果未能解决你的问题,请参考以下文章
一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持组件注解限制