spring基於javaConfig的Bean自動依賴內部Bean
阿新 • • 發佈:2022-05-31
在javaConfig配置類中注入兩個Bean:
package cn.cdulm; import cn.cdulm.bean.Role; import cn.cdulm.bean.User; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.*; // 標記一個spring配置類 // 相當於一個xml<beans>標籤中的內容 @Configuration @ComponentScan(basePackages= "cn.cdulm") // ==<context:component-scan base-package="cn.cdulm"> @PropertySource({"classpath:db.properties"}) @Import(SecondJavaConfig.class) public class IocJavaConfig { @Value("${mysql.username}") private String username; /** * 注入druid資料庫連線池物件,返回連線池物件型別,方法名就是xml配置中的id,其餘屬性在方法中set *@return */ @Bean public DruidDataSource dataSource(){ // 將依賴的bean注入方法的引數中 DruidDataSource dataSource = new DruidDataSource(); dataSource.setName(username); dataSource.setPassword("747699"); dataSource.setUrl("jdbc:mysql://localhost:3306/db1"); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); return dataSource; } @Bean public User user1(){ return new User(); } }
依賴內部Bean直接去呼叫另一個Bean的方法就行了:
輸出結果:
User已載入!
cn.cdulm.bean.User@35e2d654
{
CreateTime:"2022-05-31 10:33:56",
ActiveCount:0,
PoolingCount:0,
CreateCount:0,
DestroyCount:0,
CloseCount:0,
ConnectCount:0,
Connections:[
]
}
User的構造器:
說明User類例項化成功。