第三方bean管理
使用独立的配置类管理第三方bean
public class JdbcConfig { @Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/db7"); ds.setUsername("root"); ds.setPassword("731822zz"); return ds; } }
将独立的配置类加入核心配置
方式一:导入类
public class JdbcConfig { @Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); //相关配置 return ds; } }
使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式
@Configuration @Import({JdbcConfig.class}) public class SpringConfig { }
方式二:扫描式
@Configuration public class JdbcConfig { @Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); //相关配置 return ds; } }
使用@ComponentScan注解扫描配置类所在的包,加载对应的配置类信息
@Configuration @ComponentScan("com.itheima.config") public class SpringConfig { }
第三方bean依赖注入
简单类型依赖注入
public class JdbcConfig { @Value("com.mysql.jdbc.Driver") private String driver; @Value("jdbc:mysql://localhost:3306/db7") private String url; @Value("root") private String userName; @Value("731822zz") private String password; @Bean public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(userName); ds.setPassword(password); return ds; } }
引用类型依赖注入
@Bean public DataSource dataSource(BookDao bookDao) { System.out.println(bookDao); DruidDataSource ds = new DruidDataSource(); return ds; }
引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动转配对象