Spring的新注解说明

新注解说明

@Configuration

  • 作用:
    用于指定当前类是一个配置类,会从该类上加载注解。
    • 读取该类上@ComponentScan注解
      初始化spring容器。
    • 该配置类的作用就相当于bean.xml文件

注解代码

//表明当前类是一个配置类 
@Configuration
//配置要扫描的包 
@ComponentScan(basePackages = "com.Kato")
public class SpringConfiguration { 
}

获取

ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfiguration.class);

@ComponentScan

  • 作用:
    用于指定spring在初始化容器时要扫描的包(单个)。
  • 属性:

    • basePackages:用于指定要扫描的包。
  • @ComponentScan扫描的是单个

  • @ComponentScans扫描的是多个
    • 属性
      • value:传入的是一个数组

可以解决在配置文件中添加扫包然后开启支持

<!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 --> 
<context:component-scan base-package="com.Kato"></context:component-scan> 

注解代码

//表明当前类是一个配置类 
@Configuration
//配置要扫描的包 
@ComponentScans(value={@ComponentScan(basePackages="com.Kato")})
public class SpringConfiguration { 
}

@PropertySource

  • 作用:用于加载.properties文件中的配置
  • 属性:
    • value[]:用于指定 properties文件位置。
    • 如果是在类路径下,需要写上classpath:
  • @PropertySource导入的是单个加载properties配置文件
  • @PropertiesSources导入的是多个加载properties配置文件
@PropertySources(value={@PropertySource(value="classpath:com/Kato/config/jdbc.properties")})

@Import

  • 作用:
    用于导入其他配置类
  • 属性:
    • value[]:用于指定其他配置类的字节码。
@Import(value={JdbcConfig.class})

@Bean

  • 作用:
    该注解只能写在方法上,表明使用此方法创建一个对象,会把返回值交给 spring管理。
  • 属性:
    • name:给当前方法返回的对象的@Bean注解方法创建的对象指定一个名称(即 bean的 id)
@Bean("dataSource")
public DataSource getDataSource(){
    // 定义c3p0数据源对象
    ComboPooledDataSource ds = new ComboPooledDataSource();

    // 设置连接数据库的四个基本要素
    try {
        ds.setDriverClass(driverClass);
        ds.setJdbcUrl(jdbcUrl);
        ds.setUser(user);
        ds.setPassword(password);
    } catch (PropertyVetoException e) {
        e.printStackTrace();
    }
    return ds;
}
 /**
 * @Qualifier:
 *  作用:在方法形参上使用,可以独立使用,指定根据bean的id进行注入
 */
@Bean("runner")
 public QueryRunner getRunner(@Qualifier("dataSource") DataSource ds){

     return new QueryRunner(ds);
 }

猜你喜欢

转载自blog.csdn.net/kato_op/article/details/80246977