# 第三方 bean 依赖注入
# 简单类型依赖注入
1.SpringConfig
@SuppressWarnings("all") | |
@Configuration | |
// 导入配置类 | |
@Import({JdbcConfig.class}) | |
public class SpringConfig { | |
} |
2.JdbcConfig
@SuppressWarnings("all") | |
// 在 SpringConfig 中使用 @Import 导入的类可不不进行配置 @Configuration 注解 | |
public class JdbcConfig { | |
@Value("com.mysql.cj.jdbc.Driver") | |
private String driver; | |
@Value("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8serverTimezone=UTC") | |
private String url; | |
@Value("root") | |
private String username; | |
@Value("dkx") | |
private String password; | |
// 1. 定义一个方法获得管理的对象 | |
// 2. 添加 @Bean 表示当前方法返回值是一个 bean | |
@Bean("druid") | |
public DataSource getDataSource(){ | |
DruidDataSource druidDataSource = new DruidDataSource(); | |
druidDataSource.setDriverClassName("${driver}"); | |
druidDataSource.setUrl("${url}"); | |
druidDataSource.setUsername("${username}"); | |
druidDataSource.setPassword("${password}"); | |
return druidDataSource; | |
} | |
} |
3. 测试代码
public void test(){ | |
ApplicationContext c = new AnnotationConfigApplicationContext(SpringConfig.class); | |
DataSource dataSource = c.getBean("druid",DataSource.class); | |
System.out.println(dataSource); | |
} |
# 引用类型依赖注入
1.SpringConfig
@Configuration | |
@ComponentScan("com.dkx.spring") | |
public class SpringConfig { | |
} |
2.JdbcConfig
@SuppressWarnings("all") | |
// 在 SpringConfig 中使用 @Import 导入的类可不不进行配置 @Configuration 注解 | |
@Configuration | |
public class JdbcConfig { | |
@Value("com.mysql.cj.jdbc.Driver") | |
private String driver; | |
@Value("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8serverTimezone=UTC") | |
private String url; | |
@Value("root") | |
private String username; | |
@Value("dkx") | |
private String password; | |
// 1. 定义一个方法获得管理的对象 | |
// 2. 添加 @Bean 表示当前方法返回值是一个 bean | |
@Bean("druid") | |
public DataSource getDataSource(BookDao bookDao){ | |
System.out.println(bookDao); | |
DruidDataSource druidDataSource = new DruidDataSource(); | |
druidDataSource.setDriverClassName("${driver}"); | |
druidDataSource.setUrl("${url}"); | |
druidDataSource.setUsername("${username}"); | |
druidDataSource.setPassword("${password}"); | |
return druidDataSource; | |
} | |
} |
- 引用类型注入只需要为 bean 定义方法设置形参即可,容器会根据类型自动装配对象
3. 测试类代码
public void test(){ | |
ApplicationContext c = new AnnotationConfigApplicationContext(SpringConfig.class); | |
DataSource dataSource = c.getBean("druid",DataSource.class); | |
System.out.println(dataSource); | |
} |