1. 程式人生 > 其它 >spring基於javaConfig的Bean自動依賴內部Bean

spring基於javaConfig的Bean自動依賴內部Bean

在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類例項化成功。