在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类实例化成功。