# 註解開發管理第三方bean ###### tags: `Spring-bean的自動裝配` 前面定义bean的时候都是在自己开发的类上面写个注解就完成了,但如果是第三方的类,这些类都是在jar包中,我们没有办法在类上面添加注解,这个时候该怎么办? 遇到上述问题,我们就需要有一种更加灵活的方式来定义bean,这种方式不能在原始代码上面书写注解,一样能定义bean,这就用到了一个全新的注解-- @Bean ### 步骤1:导入对应的jar包 ```xml= <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> ``` ### 步骤2:在配置类中添加一个方法 注意该方法的返回值就是要创建的Bean对象类型 ```java= @Configuration public class SpringConfig { public DataSource dataSource(){ DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource.setUsername("root"); druidDataSource.setPassword("********"); druidDataSource.setUrl("jdbc:mysql://localhost:3306/mybatis"); return druidDataSource; } } ``` ### 步骤3:在方法上添加​​@Bean​​注解 @Bean注解的作用是将方法的返回值制作为Spring管理的一个bean对象 ```java= @Configuration public class SpringConfig { @Bean public DataSource dataSource(){ DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setDriverClassName("com.mysql.jdbc.Driver"); druidDataSource.setUsername("root"); druidDataSource.setPassword("*********"); druidDataSource.setUrl("jdbc:mysql://localhost:3306/mybatis"); return druidDataSource; } } ``` **注意:不能使用​​DataSource ds = new DruidDataSource()​​** 因为DataSource接口中没有对应的setter方法来设置属性。 ### 步骤4:从IOC容器中获取对象并打印 ```java= public class App9 { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class); DataSource dataSource = ctx.getBean(DataSource.class); System.out.println(dataSource); } } ``` ![](https://i.imgur.com/HjHcvK8.png) ************ ![](https://i.imgur.com/YNmlEzM.png) ![](https://i.imgur.com/OuMbugR.png) ![](https://i.imgur.com/pXwAZIi.png) ![](https://i.imgur.com/gv7nqmg.png) ************** ![](https://i.imgur.com/8p1udTz.png) ![](https://i.imgur.com/wb9Ivye.png)