【Spring】核心概念:注解开发 管理第三方 Bean & 注入资源 [ 编程杂谈 ]
大数据男孩 文章 正文
明妃
{{nature("2022-09-15 17:48:57")}}更新管理第三方 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;
}
}
案例代码:https://pan.bigdataboy.cn/s/NO5sp
{{nature('2020-01-02 16:47:07')}} {{format('12641')}}人已阅读
{{nature('2019-12-11 20:43:10')}} {{format('9526')}}人已阅读
{{nature('2019-12-26 17:20:52')}} {{format('7572')}}人已阅读
{{nature('2019-12-26 16:03:55')}} {{format('5017')}}人已阅读
目录
标签云
一言
评论 0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}