一、注解开发管理第三方bean
(1)在配置类中添加一个方法
注意该方法的返回值就是要创建的Bean对象类型(2)在方法上添加
@Bean
注解
@Bean 注解的作用是将方法的返回值制作为Sp ring
管理的一个
bean对象@Configuration public class SpringConfig { //1.第一一个方法获得要管理的对象 //2.添加@Bean,表示当前方法的返回值是一个bean @Bean public DataSource dataSource(){ DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/spring_db"); ds.setUsername("root"); ds.setPassword("root"); return ds; } }
(3)客户端类public class App { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); DataSource dataSource = ctx.getBean(DataSource.class); System.out.println(dataSource); } }
![]()
二、引入外部配置类
1. 使用 @Import 引入(推荐)
(1)添加一个
JdbcConfig 配置类public class JdbcConfig { @Bean public DataSource dataSource(){ DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/spring_db"); ds.setUsername("root"); ds.setPassword("root"); return ds; } }
(2)
在
Spring
配置类中引入@Configuration @Import({JdbcConfig.class}) public class SpringConfig { }
注意:1️⃣@Import
参数需要的是一个数组,可以引入多个配置类。2️⃣@Import
注解在配置类中只能写一次![]()
2. 使用包扫描引入
(1)
在
Spring的配置类上添加包扫描@Configuration @ComponentScan("com.itheima.config") public class SpringConfig { }
(2)
在
JdbcConfig上添加配置注解@Configuration public class JdbcConfig { @Bean public DataSource dataSource(){ DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://localhost:3306/spring_db"); ds.setUsername("root"); ds.setPassword("root"); return ds; } }
这种方式虽然能够扫描到,但是不能很快的知晓都引入了哪些配置类,所有这种方式不推荐使用。
三、注解开发实现为第三方bean注入资源
1. 简单数据类型
(1)使用@Value注解引入值@Configuration public class JdbcConfig { @Value("com.mysql.jdbc.Driver") private String driver; @Value("jdbc:mysql://localhost:3306/spring_db") private String url; @Value("root") private String userName; @Value("password") 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; } }
2. 引用数据类型
(1)在 SpringConfig 中扫描 BookDao(2)在 JdbcConfig 类的方法上添加参数@Configuration public class JdbcConfig { @Value("com.mysql.jdbc.Driver") private String driver; @Value("jdbc:mysql://localhost:3306/spring_db") private String url; @Value("root") private String userName; @Value("password") private String password; @Bean public DataSource dataSource(BookDao bookDao){ System.out.println(bookDao); DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(userName); ds.setPassword(password); return ds; } }
引用类型注入只需要为
bean
定义方法设置形参即可,容器会根据类型自动装配对象。
四、XML 配置比对注解配置

版权声明:本文为yirenyuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。