# 註解開發管理第三方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); } } ```  ************     **************  
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up