02Spring boot java代码方式配置

02.Spring boot java代码方式配置

目标:可以使用@Value获取配置文件配置项并结合@Bean注册组件到Spring

分析

需求:使用Java代码配置数据库连接池,并可以在处理器中注入并使用

在入门案例中,我们没有任何的配置,就可以实现一个SpringMVC的项目了,快速、高效! 但是如果没有任何的xml,那么我们如果要配置一个Bean该怎么办?

1. Spring配置历史

  • 事实上,在Spring3.0开始,Spring官方就已经开始推荐使用java配置来代替传统的xml配置了,我们不妨来回顾一下 Spring的历史:
    Spring1.0时代 在此时因为jdk1.5刚刚出来,注解开发并未盛行,因此一切Spring配置都是xml格式,想象一下所有的bean都用 xml配置,细思极恐啊,心疼那个时候的程序员2秒
    Spring2.0时代 Spring引入了注解开发,但是因为并不完善,因此并未完全替代xml,此时的程序员往往是把xml与注解进行结 合,貌似我们之前都是这种方式。
    Spring3.0及以后 3.0以后Spring的注解已经非常完善了,因此Spring推荐大家使用完全的java配置来代替以前的xml,不过似乎 在国内并未推广盛行。然后当Spring Boot来临,人们才慢慢认识到java配置的优雅。
    有句古话说的好:拥抱变化,拥抱未来。所以我们也应该顺应时代潮流,做时尚的弄潮儿,一起来学习下java配置的 玩法。

2.使用java配置实现步骤:

java配置主要靠java类和一些注解,比较常用的注解有:

  • @Configuration :声明一个类作为配置类,代替xml文件
  • @Bean :声明在方法上,将方法的返回值加入Bean容器,代替 标签
  • @Value :属性注入
  • @PropertySource :指定外部属性文件。

我们接下来用java配置来尝试实现连接池配置:

2.1. 添加依赖:
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>
2.2. 创建数据库:

使用数据操作工具创建数据库 springboot_test
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191229221802768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQ3MzYwODI=,size_16,color_FFFFFF,t_70

2.3. 创建数据库连接参数的配置文件jdbc.properties:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot_test
jdbc.username=root
jdbc.password=root
2.4. 创建配置类:
package com.piziwang.config;

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 org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
    @Value("${jdbc.url}")
    String url;
    @Value("${jdbc.driverClassName}")
    String driverClassName;
    @Value("${jdbc.username}")
    String username;
    @Value("${jdbc.password}")
    String password;

    @Bean
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}
2.5. 改造处理器类注入数据源并使用:

在 HelloController 中注入DataSource进行测试,改造代码如下:

@RestController
public class HelloController {
    @Autowired
    private DataSource dataSource;
    @GetMapping("hello")
    public String hello(){
        System.out.println("datasource="+dataSource);
        return "hello .Spring boot with dataSource is"+dataSource;
    }
}

小结

  • @Configuration :声明一个类作为配置类,代替xml文件
  • @Bean :声明在方法上,将方法的返回值加入Bean容器,代替 标签
  • @Value :属性注入
  • @PropertySource :指定外部属性文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值