我是靠谱客的博主 英勇寒风,最近开发中收集的这篇文章主要介绍springboot的四种注入方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

springboot的属性注入

以注入dataSource为例
1.springboot默认读取的文件是放在resources目录下的名为application.properties或application.yml的文件
在application.properties中写入以下属性

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/数据库名称
jdbc.username=rootxxx
jdbc.password=xxx

或者application.yml中写入如下格式的属性

jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/数据库名称
username: rootxxx
password: xxx

2.引入依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>

3.创建一个类,用于提供属性注入

@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
// ... 略
// getters 和 setters
}

- 在类上通过@ConfigurationProperties注解声明当前类为属性读取类
- prefix="jdbc"读取属性文件中,前缀为jdbc的值。
- 在类上定义各个属性,名称必须与属性文件中jdbc.后面部分一致

4.创建一个JdbcConfig类使用这些属性

@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
//例子
@Bean
public DataSource dataSource(JdbcProperties jdbc) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(jdbc.getUrl());
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}

通过@EnableConfigurationProperties(JdbcProperties.class)来声明要使用JdbcProperties这个类的对象

当然,JdbcProperties的注入有三种方法
4.1@Autowired注入

@Autowired
private JdbcProperties prop;

4.2构造函数注入

private JdbcProperties prop;
public JdbcConfig(Jdbcproperties prop){
this.prop = prop;
}

4.3声明有@Bean的方法参数注入
上面的例子就是使用该方法注入(//例子)
4.4这种方式的注入看起来很复杂,但是复用性很高,如果我们只需要在单个地方使用dataSource,可以使用下面的方法注入

@Configuration
public class JdbcConfig {
@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
return dataSource;
}
}

我们直接把@ConfigurationProperties(prefix = “jdbc”)声明在需要使用的@Bean的方法上,然后SpringBoot就会自动调用这个Bean(此处是DataSource)的set方法,
然后完成注入。使用的前提是:该类必须有对应属性的set方法!

最后

以上就是英勇寒风为你收集整理的springboot的四种注入方式的全部内容,希望文章能够帮你解决springboot的四种注入方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部