Spring裝配Bean的三種方式+匯入和混合配置
* 和spring連線資料庫相關的配置類 */ public class JdbcConfig { @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; /** * 建立queryRunner物件 * * @param dataSource * @return */ @Bean(name = "runner") @Scope("prototype") public QueryRunner createQueryRunner(DataSource dataSource) { return new QueryRunner(dataSource); } /** * 建立資料來源物件 * * @return */ @Bean(name = "dataSource") public DataSource createDataSource() { try { ComboPooledDataSource ds = new ComboPooledDataSource(); ds.setDriverClass(driver); ds.setJdbcUrl(url); ds.setUser(username); ds.setPassword(password); return ds; } catch (Exception e) { throw new RuntimeException(e); } } } ``` 【@Value】 * 作用:用於基本型別和string型別的資料。 * 屬性:value,指定資料的值,可以使用spring中的SpEL,spring的el表示式。 * SpEL的寫法:${表示式}。 ```java /** * 主配置類 */ @Configuration @ComponentScan(basePackages = "com.smday") @Import(JdbcConfig.class) @PropertySource("classpath:JdbcConfig.properties") public class SpringConfiguration { } ``` 【@Import】 * 作用:用於匯入其他的配置類。 * 屬性:value,指定其他配置類的位元組碼,使用Import註解後,有該註解的類為父配置類,匯入的都是子配置類。 【@PropertySource】 * 作用:作用於指定properties檔案的位置。 * 屬性:value,指定檔案的名稱和路徑,關鍵字classpath表示類路徑下。 > 最後的最後,引用Spring in Action中作者的話:自動化配置、基於Java的顯式配置以及基於xml的顯式配置都描述了Spring應用中元件以及這些元件之間的關係。作者建議儘可能使用自動化的配置,其次如果需要顯式配置,希望優先選擇基於Java的配置,型別安全且