关于spring boot 注入相关经验
2021-03-01 16:26
标签:qualifier url coding 单例 使用 师傅 config pass enc title: 关于spring boot 注入相关经验 这里是最近重新学习Spring boot关于注入相关的经验博客,特此记录一下: 在学习java web的时候,有使用过一个叫jdbcTemplate的东西。所以下面这个代码极为熟悉: 首先要说几点就是,这个@Configuration是必须要写的,如果没有写,这个Bean是不生效的。 我们创建了一个jdbcTemplate的单例,接下来是怎么注入的问题。 我一开始写的代码是这样的。 这里其实是错误的,因为他会自动注入Springboot里面的这个类,我问了一下我的师傅,他和我说: 这是因为xxx这个类没有托管给Spring工厂,加一个@Component就OK了 我最近弄cdc的时候需要用到多数据源,下面是注入时的一些小经验 创建一个config 说个重要的,当你的Bean后面写了名称的时候,如果想注入这个东西,你需要用到下面的代码 总之@Qualifier这个注解一定要会 关于spring boot 注入相关经验 标签:qualifier url coding 单例 使用 师傅 config pass enc 原文地址:https://www.cnblogs.com/adroitwolf/p/14439325.html
date: 2019-07-27 06:54:30
categories:
tags:
关于spring boot 注入相关经验
JdbcTemplate注入
@Configuration
public class Springconfig {
@Bean
public JdbcTemplate jdbcTemplate(){
return new JdbcTemplate();
}
}
class xxx{
@Autowired
JdbcTemplate jdbc;
}
多数据源注入
spring:
datasource:
dynamic:
primary: target
batch:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/springbatch?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123
origin:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: 123
target:
driver-class-name: com.mysql.cj.jdbc.Driver
jdbc-url: jdbc:mysql://localhost:3306/target_test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: 123
@Configuration
public class DataSourceConfig {
@Bean("batchDataSource")
@ConfigurationProperties("spring.datasource.dynamic.batch")
public DataSource batchDataSource(){
return DataSourceBuilder.create().build();
}
@Bean("originSource")
@ConfigurationProperties("spring.datasource.dynamic.origin")
public DataSource originDataSource(){
xxx
}
@Bean("targetSource")
@ConfigurationProperties("spring.datasource.dynamic.target")
@Primary
public DataSource targetDataSource(){
xxx
}
}
// 第一种
@Autowired
@@Qualifier("batchDataSource") DataSource dataSource;
//第二种
method(@Qualifier("batchDataSource") DataSource dataSource){
}