新博客:https://blog.bigdataboy.cn/article/448.html
管理第三方 Bean
第三方 Bean 没有办法写给它注解,所以就只能添加,Spring 的处理是在配置类中写一个函数,该函数使用
@Beam
注解
第三方 Bean 配置类
第三方 Bean 的配置类,建议单独文件编写,这样不冗余,全部写一个配置类,会变得一大坨
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class JdbcConfig {
@Bean // 表示返回一个 Bean,也可以指定 id -> @Bean("dataSource")
public DataSource dataSource() { // 参数先空着
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("");
dataSource.setUrl("");
dataSource.setUsername("");
dataSource.setPassword("");
return dataSource;
}
}
在主配置类导入第三方配置类
@Configuration
@ComponentScan({"cn.bigdataboy.dao"})
@Import({JdbcConfig.class}) // 导入
public class SpringConfig {
}
获取第三方 Bean
第三方 Bean 的注入资源
上面的例子,JDBC的链接还空着,所以我们需要为其
注入参数
注入简单类型
注入方式与注入自己的 Bean 一样,使用
成员属性
添加@Value()
注解
import cn.bigdataboy.dao.NameDao;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class JdbcConfig {
@Value("${jdbc.driver}")
public String driverClassName;
@Value("${jdbc.url}")
public String url;
@Value("${jdbc.username}")
public String username;
@Value("${jdbc.password}")
public String password;
@Bean // 表示返回一个 Bean,也可以指定 id -> @Bean("dataSource")
public DataSource dataSource() {
System.out.println(this.driverClassName);
System.out.println(this.url);
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(this.driverClassName);
dataSource.setUrl(this.url);
dataSource.setUsername(this.username);
dataSource.setPassword(this.password);
return dataSource;
}
}
注入引入类型
这里注入引入类型,有点不一样,直接添加成
方法参数就好
,因为Spring 容器中已经存在相应的 Bean,那么它也就能自己找到,因此也容易想到它是使用 类型方式 找的
import cn.bigdataboy.dao.NameDao;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration
public class JdbcConfig {
@Bean // 表示返回一个 Bean,也可以指定 id -> @Bean("dataSource")
public DataSource dataSource(NameDao nameDao) { // 添加成参数
System.out.println(nameDao); // 打印一下,表示注入成功
DruidDataSource dataSource = new DruidDataSource();
// 相应配置
return dataSource;
}
}
版权声明:《 【Spring】核心概念:注解开发 管理第三方 Bean & 注入资源 》为明妃原创文章,转载请注明出处!
最后编辑:2022-9-15 09:09:08