2

Spring的发展

1、Spring 1.x

spring 1.x 时代主要使用xml配置和java代码的方式

2、Spring 2.x

随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行申明和注入,大大的减少了xml配置文件,同时也大大简化了项目的开发。
1、 应用的基本配置用xml,比如:数据源、资源文件等;
2、 业务开发用注解,比如:Service中注入bean等;

3、Spring 3.x,4.x

从Spring3.x开始提供了Java配置方式,使用Java配置方式可以更好的理解你配置的Bean,现在我们就处于这个时代,并且Spring4.x和Springboot都推荐使用java配置的方式。

3.1 Spring 3.x,4.x 注解说明

  • @Configuration
    @Configuration作用于类上,相当于一个xml配置文件;
  • @Bean
    @Bean作用于方法上,相当于xml配置中的<bean>
  • 读取外部配置文件
    类上的注解:
    @Configuration//通过该注解来表明该类是一个Spring的配置,相当于一个xml文件
    @ComponentScan(basePackages = "com.xxx.xxx") //配置扫描包
    @PropertySource(value= {"classpath:jdbc.properties"})
    注解配置到field
    eg:
    @Value("${jdbc.url}")
    private String jdbcUrl;
    备注:
    1、查看PropertySource.java可以发现,可以配置多个配置文件,可以处理找不到的情况。

4、获取数据源案例

    /**
     * @Bean 相当与获取一个bean,类似xml 方式的配置,方法名就是xml方式配置bean的id,所            
     *以方法不用getDataSource, id 一般不用getXXX.
     * @return
     */
    **@Bean(destroyMethod = "close")**//destroyMethod = "close"
    public DataSource dataSource() {
        BoneCPDataSource boneCPDataSource = new BoneCPDataSource();
        // 数据库驱动
        boneCPDataSource.setDriverClass(jdbcDriverClassName);
        // 相应驱动的jdbcUrl
        boneCPDataSource.setJdbcUrl(jdbcUrl);
        // 数据库的用户名
        boneCPDataSource.setUsername(jdbcUsername);
        // 数据库的密码
        boneCPDataSource.setPassword(jdbcPassword);
        // 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0
        boneCPDataSource.setIdleConnectionTestPeriodInMinutes(60);
        // 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0
        boneCPDataSource.setIdleMaxAgeInMinutes(30);
        // 每个分区最大的连接数
        boneCPDataSource.setMaxConnectionsPerPartition(100);
        // 每个分区最小的连接数
        boneCPDataSource.setMinConnectionsPerPartition(5);
        final Connection connection;
        try {

            connection = boneCPDataSource.getConnection();
            System.out.println("数据库连接为:");
            System.out.println(connection);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return boneCPDataSource;
    }
**备注:**
1、@Bean(destroyMethod = "close")以便Spring容器关闭时,数据源能够正常关闭;销毁方法调用close(),是将连接关闭,并不是真正的把资源销毁。
2、同时我们可以注意BoneCPDataSource 对数据源的设置。







dhxx
37 声望19 粉丝

中间件相关