Springboot属性注入方法

springboot三种常见的属性注入方式
第一种:@Component+@Value注解的形式来进行属性注入
首先都需要在application.properties文件写入配置信息

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root

第一种方法太多简单,这里就不在具体阐述

第二种:使用@ConfigurationProperties+Set方式注入:
1.编写一个JdbcProperties.java类
注意这里用到的@Data是 lombok.Data下的(如果没有需要在pom文件引用lombok依赖),@Data注解就是@Getter和@Setter等注解的组合,他可以自动生成get、set、hashcode、toString、构造,在编译的时候就产生,而不是在运行的时候才会声称这些方法。

package com.blj.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.List;

@Data
@ConfigurationProperties(prefix = "jdbc")//方法2:
public class JdbcProperties {
    private String driverClassName;
    private String url;
    private String username;
    private String password;


}

2.编写配置类
需要在pom文件中引入druid连接池依赖

package com.blj.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;
@Configuration
@EnableConfigurationProperties(JdbcProperties.class)//方法2:
public class jdbcConfig {

    //方法2:
  @Bean
    public DataSource dataSource(JdbcProperties jdbcProperties){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
        dataSource.setUrl(jdbcProperties.getUrl());
        dataSource.setUsername(jdbcProperties.getUsername());
        dataSource.setPassword(jdbcProperties.getPassword());
        return dataSource;
    }

}

3.测试

  @Autowired
    private DataSource dataSource;
    

    @RequestMapping("/hello")
    public  String hello(){
       // log.debug("hello method is running!");
        return "hello springboot!";
    }

在return这里打断点,我们可以看到,说明注入成功
在这里插入图片描述

第三种:是第二种方式的改进版
这种方式下将不再用到(JdbcProperties)类,直接通过@ConfigurationProperties(prefix = “jdbc”)注解去找到.properties或.yml文件中的属性后再注入

	@Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource(){
        return new DruidDataSource();
        }

这种方式就是把@ConfigurationProperties(prefix=“jdbc”)注解写在@Bean下,当springboot启动解析的时候,会找到@Configuration注解,然后找到@Bean注解,然后找到@ConfigurationProperties(prefix=“jdbc”)注解,直接解析yml文件,这样写的好处就是减少了代码量,个人更喜欢这一中注入方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值